SQL中表的连接类型-左连接、右连接、内连接
两个表
student表,information表
左连接
student表 left join information表
SELECT * FROM student s LEFT JOIN information f on s.SNO = f.SNO;
- SNO='202201',s有2条,f有1条,结果集有2条数据;
- SNO='202202',s有3条,f有2条,结果集有6条数据;(2×3=6)
- SNO='202203',s有1条,f有1条,结果集有1条数据;
- SNO='202204',s有1条,f有2条,结果集有2条数据;
- SNO='202205',s有1条,f无,结果集f的列为null;
- SNO='202206',s无,f有的数据,结果集无;
注意黑色加粗的字即它们的区别;
右连接
student表 right join information表
SELECT * FROM student s RIGHT JOIN information f on s.SNO = f.SNO;
- SNO='202201',s有2条,f有1条,结果集有2条数据;
- SNO='202202',s有3条,f有2条,结果集有6条数据;(2×3=6)
- SNO='202203',s有1条,f有1条,结果集有1条数据;
- SNO='202204',s有1条,f有2条,结果集有2条数据;
- SNO='202205',s有1条,f无,结果集无;
- SNO='202206',s无,f有的数据,结果集s的列为null;
内连接
student表 inner join information表
SELECT * FROM student s inner JOIN information f on s.SNO = f.SNO;
- SNO='202201',s有2条,f有1条,结果集有2条数据;
- SNO='202202',s有3条,f有2条,结果集有6条数据;(2×3=6)
- SNO='202203',s有1条,f有1条,结果集有1条数据;
- SNO='202204',s有1条,f有2条,结果集有2条数据;
- SNO='202205',s有1条,f无,结果集无;
- SNO='202206',s无,f有1条,结果集无;
SELECT * FROM student s,information f WHERE s.SNO = f.SNO
where语句也可以实现内连接的功能,但是where语句还可以加上其他条件,内连接只能自己再写一个where条件语句。
End.