您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

SQLServer数据库之连接查询

bubuko 2022/1/25 19:53:37 sqlserver 字数 2475 阅读 998 来源 http://www.bubuko.com/infolist-5-1.html

inner join on内连接,left join on 左连接 , rigth join on 右连接, full join on 全连接 ...

SQLServer数据库之连接查询


表的连接查询的几种方法介绍:
inner join on内连接,left join on 左连接 , rigth join on 右连接, full join on 全连接

内连接(inner join)

内连接为查询两表的共有的数据,取两表的交集

语法:

select [查询内容] from [表1] inner join [表2] on [连接条件]

例如:查询学生所在的班级

select s.name as 姓名,c.name as 班级 from student s inner join class c on s.classId=c.id	
--等价与
select s.name as 姓名 ,c.name as 班级 from student s, class c where s.classId=c.id  --必须加上条件,不然会出大问题
--也可以把inner省掉效果一样 默认为Inner join 连接

技术分享图片

左连接(left join)

左连接以查询主表全部数据,如果从表没有响应数据则以null作为填充
(主表为查询表,从表为连接的表)
语法:

select [查询内容] from [表1] left join [表2] on [连接条件]

例如

select s.name as 姓名,c.name as 班级 from student s 
			left join class c on s.classId=c.id	

如图:小思和小林像个班级的孩子
技术分享图片

右连接(right join)

从表查询全部数据,如果主表没有数据则以null填充
(主表为查询表,从表为连接的表)
语法:

select [查询内容] from [表1] right join [表2] on [连接条件]

例如

select s.name as 姓名,c.name as 班级 from student s 
			right join class c on s.classId=c.id	

如图:大三和大四没有学员
技术分享图片

全连接(full join)

主从表全部数据,如果主从表没有对应数据则以null填充
(主表为查询表,从表为连接的表)
语法:

select [查询内容] from [表1] full join [表2] on [连接条件]

例如

select s.name as 姓名,c.name as 班级 from student s 
			full join class c on s.classId=c.id	

如图:
技术分享图片

总结:
在项目中为了适应不同的需求选择合适的连接方式

SQLServer数据库之连接查询

原文:https://www.cnblogs.com/IsThis/p/12812805.html


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶