笛卡尔积
定义:多张表相乘,简单的说就是两个集合相乘的积。(列数相加,行数相乘)
先建了两张表,课程表:
信息表:
1.纯笛卡尔积
select * from a,b
是两个表的无键值关联,纯粹的排列组合形成的表(列数相加,行数相乘)
2.内连接 inner join on
内连接:笛卡尔积中,只显示有关联的数据,无关联不显示。
select * from lefttable 左表,righttable 右表 where 左表.主键=右表.外键;
select * from lefttable 左表 inner join 右表 on 左表.主键=右表.外键;
eg:
3.左(外)连接 left(outer)join on
笛卡尔积中,左边表中的数据必须都显示
select * from 左表 left join 右表 on 左表.主键=右表.外键;
select * from 左表,右表 where 左表.主键=右表.外键(+);
eg:
4.右连接 right join on
笛卡尔积中,右边表中的数据必须都显示
select * from 左表 right join 右表 on 左表.主键=右表.外键;
select * from 左表,右表 where 左表.主键(+)=右表.外键;