sql 双表或多表的连接查询 join

使用 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

猜你喜欢

转载自www.cnblogs.com/Z7TS/p/9644918.html