多表查询里的笛卡尔积
- SQL Server
- 2020-07-16
- 19热度
- 0评论
在数学中,笛卡尔乘积是指两个集合X和Y的笛卡尓积(Cartesian product),又称直积,表示为X × Y,第一个对象是X的成员而第二个对象是Y的所有可能有序对的其中一个成员。
假设集合A={a, b},集合B={0, 1, 2},则两个集合的笛卡尔积为{(a, 0), (a, 1), (a, 2), (b, 0), (b, 1), (b, 2)}。
笛卡尔积是在多表进行联合查询的时候会出现的一种情况。在实际应用中,笛卡尔积本身大多没有什么实际用处,只有在两个表连接时加上限制条件,才会有实际意义。
比如有两张表:
表一:

表二:

在进行查询的时候:
select studentname,Subjectname from Student,subject
会出现下面的情形,也就是笛卡尔现象,表一有5条记录,表二有3条记录,那么对于第一张表而言有5种选择,而对于第二张表来说有3种选择。所以结果就是5*3种选择了,也就是笛卡尔积。


鲁ICP备19063141号
鲁公网安备 37010302000824号