其他分享
首页 > 其他分享> > left join,right join用法

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