left join,right join用法
作者:互联网
一个sql自学网站的整理笔记
LEFT JOIN保留A的所有行,不管有没有能匹配上B(而B没有匹配上在输出时表现为null)
反过来 RIGHT JOIN则保留所有B里的行。
最后FULL JOIN 不管有没有匹配上,同时保留A和B里的所有行
运用题目深入了解一下:
用两个新的表雇员表 Employees 和 办公室表 Buildings.
注意:有一些办公室是新的,还没有雇员.
题目:找到所有有雇员的办公室(buildings)名字
下面展示一些 内联代码片
。
分析:题目中,‘有雇员的’是前提,真正的主表是办公室,要求输出办公室名字。
主表是哪个很关键,因为这对应left join,right join用法
SELECT distinct Employees.building //distinct 去掉重复的筛选结果
FROM Buildings left join employees//buildings为主表,保留其所有行
on Building=Building_name //连接条件
查询结果为
题目2:找到所有办公室里的所有角色(包含没有雇员的),并做唯一输出(DISTINCT)
下面展示一些 内联代码片
。
SELECT distinct role ,Building_name FROM
Buildings left join employees
ON building_name =building//连接条件
查询结果:
欢迎大家阅读,本人萌新见识有限,写的博客难免有错误或者疏忽的地方,还望各位大佬指点,在此表示感激不尽。
标签:Building,right,join,办公室,name,雇员,left 来源: https://blog.csdn.net/numbjavanese/article/details/116543967