1.INNER JOIN(内连接):
//语法
select s.stuid,s.stuname,c.no from stu s inner join class c on s.id = c.id
//下面这种写法和内连接查询结果一样,根据数据量大小使用
select s.stuid,s.stuname,c.no from stu s,class c where s.id = c.id
查询结果:
stuid | stuname | no |
---|---|---|
001 | 张三 | 001001 |
002 | 李四 | 001002 |
说明:两表进行内连接查询时,只显示两表中匹配的结果集
2.LEFT JOIN(左连接):
//语法
select * from stu s left join class c on s.id = c.id
查询结果:
stuid | stuname | no |
---|---|---|
001 | 张三 | 001001 |
002 | 李四 | 001002 |
003 | 王五 |
说明:在两表进行左连接查询时,会返回左表所有的行,右表中没有匹配的记录也会返回
3.RIGHT JOIN(右连接)
//语法
select * from stu s right join class c on s.id = c.id
查询结果:
stuid | stuname | no |
---|---|---|
001 | 张三 | 001001 |
002 | 李四 | 001002 |
001004 |
说明:在两表进行右连接查询时,会返回右表所有的行,左表中没有匹配的记录也会返回
4.FULL JOIN(全连接)
//语法
select * from stu s full join class c on s.id = c.id
查询结果:
stuid | stuname | no |
---|---|---|
001 | 张三 | 001001 |
002 | 李四 | 001002 |
003 | 王五 | |
001004 |
说明:在两表进行全连接查询时,返回左表和右表中所有匹配和没有匹配的行