使用 inner join,left join, right join.full join 对双表进行联合查询。
1.inner join、join:如果表中有至少一个匹配,则返回行。
2.left join:即使右表中没有匹配,也从左表中返回所有行。
3.right join:即使左表中没有匹配,也从右表中返回所有行。
4.full join:只要其中一个表中存在匹配,就返回所有行。
举例说明,建立两个表。
1. 表名:Class 主键:ClassID 字段:ClassName
2.表名:Student 主键 StuID 字段:StuName 外键:ClassID
1.inner join、join:如果表中有至少一个匹配,则返回行。 // inne join 和 join 实现效果一样。
将表左右互换,对查询结果无影响。
select * from Student join Class on Student.ClassID=Class.ClassID
select * from Class join Student on Class.ClassID=Student.ClassID
2.left join:即使右表中没有匹配,也从左表中返回所有行。
将表左右互换,查询结果不同。
select * from Student left join Class on Student.ClassID=Class.ClassID
select * from Class left join Student on Class.ClassID=Student.ClassID
3.right join:即使左表中没有匹配,也从右表中返回所有行。
原理与left join 相同,查询结果位置互换。
4.full join:只要其中一个表中存在匹配,就返回所有行。
select * from Student full join Class on Student.ClassID=Class.ClassID
select * from Class full join Student on Class.ClassID=Student.ClassID