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

(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)多表连接查询

扫描二维码关注公众号,回复: 9140554 查看本文章

 ③对表定义别名进行查询

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

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

猜你喜欢

转载自www.cnblogs.com/LeeSki/p/12303907.html