08.1连接查询-外连接——MySQL

-- 外连接
/*
 应用场景: 用于查询一个表中有,另一个表中没有的记录

 特点:
 1、外连接的查询结果为主表中的所有记录
				如果从表中有和主表匹配的,则显示匹配的值
				如果从表中没有和主表匹配的,则显示null
				外连接查询的结果=内链接结果+主表中有而从表中没有的记录

 2、左外连接:left join 左边的是主表
		右外连接:right join 右边的是主表

3、左外和右外交换两表的顺序可以实现同样的效果

4、全外连接:内链接结果+表1中有但表2中没有+表1中没有但表2中有


*/

-- ;案例:查询男朋友不在男神表中的女神名
-- 左外连接实现 (outer 可省略)
SELECT be.name,bo.*
FROM beauty be
LEFT outer JOIN boys bo
ON be.boyfriend_id=bo.id
WHERE bo.id is null;

-- 右外连接实现
SELECT be.name,bo.*
FROM boys bo
RIGHT OUTER JOIN beauty be
ON be.boyfriend_id=bo.id
WHERE bo.id is null;


-- 案例: 查询哪个部门没有员工
-- 左外 
SELECT d.*,employee_id
FROM departments d
LEFT OUTER JOIN employees e
ON d.department_id=e.department_id
WHERE employee_id is null;
-- 左外 
SELECT d.*,employee_id
FROM employees e
RIGHT JOIN departments d
ON d.department_id=e.department_id
WHERE employee_id is null;



/*全外连接(MySQL中不支持)
语法:
	USE girls
	SELECT be.*,bo.*
	FROM beauty be
	FULL OUTER JOIN boys bo
	ON be.boyfriend_id=bo.id;
*/



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值