笛卡尔积
班级表(classld, className)
1 101
2 102
学生表(studentld, name, classld)
1 张三 1
2 李四 1
3 王五 2
4 赵六 2
学生表和班级表的笛卡尔积结果
(studentld, name, classld)(classld, className)
1 张三 1 1 101
1 张三 1 2 102
2 李四 1 1 101
2 李四 1 2 102
3 王五 2 1 101
3 王五 2 2 102
4 赵六 2 1 101
4 赵六 2 2 102
笛卡尔积是得到了一张更大的表,笛卡尔积的列数是两个表列数之和,行数是两个表行数之积。
由于笛卡尔积是排列组合出来的结果这里的有些数据是无效/无意义的数据。
当去掉无效数据之后,笛卡尔积里剩余的数据就是当前每个同学在哪个班级里这样的信息了,像"两个 classld 对得上" 就可以使用一个where子句的条件来描述。
基于笛卡尔积+条件进行査询, 此时就是联合査询/多表查询。