码迷,mamicode.com
首页 > 数据库 > 详细

SQLServer学习(多表连接查询)(四)

时间:2020-02-14 11:18:31      阅读:138      评论:0      收藏:0      [点我收藏+]

标签:out   内部连接   www   work   tar   图片   别名   code   数据   

(1)双表内部连接查询

技术图片

 

 

 ①在where中指定内部连接的条件(这种写法使用的很少)

SELECT WorkNo,Name,DeptName,SignImg
FROM S_A_User,S_A_UserImg
WHERE S_A_User.ID=S_A_UserImg.UserID
ORDER BY DeptName,Name

 

②在from中指定内部连接的条件(推荐使用)

SELECT WorkNo,Name,DeptName,SignImg
FROM S_A_User INNER JOIN S_A_UserImg on S_A_User.ID=S_A_UserImg.UserID
ORDER BY DeptName DESC,Name

 

总结:

 

(2)多表连接查询

 

 ③对表定义别名进行查询

使用方法:在表名后面空格 然后写上别名即可,注意:使用了别名就不能再使用原表名

SELECT u.WorkNo,u.Name,u.DeptName,r.Name
FROM S_A_User u INNER JOIN S_A__RoleUser ru ON ru.UserID=u.ID INNER JOIN S_A_Role r on r.ID=ru.RoleID

 根据用户表、用户角色表、角色表查出所有用户的角色

 

 (3)外部连接查询

 技术图片

 

 

 ①左外连接查询:是将最左侧的表作为主表,而右侧的表作为从表,主表的所有记录都会显示出来,而从表只有匹配到主表的记录才会显示出来,没有记录的字段值显示为null;

写法:其实就是将inner join中的inner 换成left (注意:在某些数据库中,left join 也写成 left outer join)

SELECT u.Name,u.WorkNo,ui.SignImg
FROM S_A_User u LEFT JOIN S_A_UserImg ui ON u.ID=ui.UserID

 

②右外连接

SELECT u.NAME,u.WorkNo,ui.UserID
FROM S_A_User u RIGHT JOIN S_A_UserImg ui ON u.ID=ui.UserID

③完全外连接:两张表都是主表,全部的数据都显示出来

SELECT u.NAME,u.WorkNo,ui.UserID
FROM S_A_User u FULL JOIN S_A_UserImg ui ON u.ID=ui.UserID

④交叉连接:

SELECT u.NAME,u.WorkNo,ui.UserID
FROM S_A_User u CROSS JOIN S_A_UserImg ui

 

总结:

技术图片

 

 

 

备注:SQL中各种连接的用法:https://www.cnblogs.com/jepson6669/p/9425491.html

 

End

SQLServer学习(多表连接查询)(四)

标签:out   内部连接   www   work   tar   图片   别名   code   数据   

原文地址:https://www.cnblogs.com/LeeSki/p/12303907.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!