1.A LEFT [OUTER] JOIN B 产生表A的完全集,而B表中匹配的则有值,没有匹配的则以null值取代。
2.A RIGHT [OUTER] JOIN B 产生表B的完全集,而A表中匹配的则有值,没有匹配的则以null值取代。
3.A CROSS JOIN B 把表A和表B的数据进行一个NM的组合,即笛卡尔积。A表4行,B表5行,结果:45=20行,这种很少用。
举例:
student表:
grade表:
A左外联B表,等价于B右外联左表。如
from A left (outer) join B
from B right (outer) join A
select * from student left join grade on student.sno = grade.sno;
(select * from student left outer join grade on student.sno = grade.sno;)
select * from grade right join student on grade.sno = student.sno;
(select * from grade right outer join student on grade.sno = student.sno;)
注:把outer换成inner会报错
select * from student left outer join grade on student.sno = grade.sno;
select * from student right outer join grade on student.sno = grade.sno;
select * from student join grade on student.sno = grade.sno;
(select * from student inner join grade on student.sno = grade.sno;)
注:把inner换成outer会报错