Natural join与笛卡尔积的区别

MySQL中natural join的用法,以学生表与选课表进行自然连接为例:

1
2
3
select *
from 学生表
natural join 选课表

MySQL中笛卡尔积连接的用法,同样以学生表与选课表进行连接为例:

1
2
3
select *
from 学生表,选课表
where 学生表.学号=选课表.学号

这两种连接方法的区别在于:
(1)natural join时,外键名称(foreign key)与所指向的表的主键名称(primary key)必须相同;
(2)natural join时会合并相同的列;
(3)进行笛卡尔积时不会合并相同的列,而且外键名称(foreign key)与所指向的表的主键名称(primary key)不一定相同。