笛卡尔积的出现是在多表进行联合查询的时候会出现的一种情况:
比如有两张表:
student
id name
1 jack
2 tom
3 lily
course
id courseName
1 math
2 english
3 sports
我们进行多表查询的时候是这样的,就是从多张表里面联合的取出一条记录
比如:
select s.id,c.id,s.name,c.courseName from student s,course c;
意思就是说从这两张表里面获取一条记录
结果数等于两张表的记录数的乘积。
为什么呢?
因为我们是要的结果是从第一张表里面取出一条记录跟第二张表里面的一条记录综合成为一条新的记录;
假如student表有m条记录,course表有n条记录,那么对于第一张表而言有m种选择,而对于第二张表来说有n种选择。
所以结果就是m*n种选择了,也就是笛卡尔积。