多表查询(笛卡尔集)

多表查询(笛卡尔集),第1张

例如:

-- 显示雇员名、工资及所在部门的名字

select t.ename, t.sal, d.dname

from emp t, dept d

where t.deptno = d.deptno

多表查询实际就是笛卡尔集

笛卡尔乘积

假设集合A={a, b, c, d},集合B={0, 1, 2},则两个集合的笛卡尔积为:

{(a, 0), (a, 1), (a, 2),

(b, 0), (b, 1), (b, 2),

(c, 0), (c, 1), (c, 2),

(d, 0), (d, 1), (d, 2)

}

可见,上面的笛卡尔集在oracle中是这样表示的:每一个二元组 如(a, 0) 都相当于虚表中的一条记录,共有4 x 3=12行记录,接下来就是从这临时表中根据where条件筛选了,最后select显示想要字段。

笛卡尔积又叫笛卡尔乘积,是一个叫笛卡尔的人提出来的。

简单的说就是两个集合相乘的结果。

具体的定义去看看有关代数系的书的定义。

直观的说就是

集合A{a1,a2,a3}

集合B{b1,b2}

他们的

笛卡尔积

A*B

={(a1,b1),(a1,b2),(a2,b1),(a2,b2),(a3,b1),(a3,b2)}

任意两个元素结合在一起


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/2033.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-01-30
下一篇2023-01-30

发表评论

登录后才能评论

评论列表(0条)

    保存