MySQL笔记 sql99外连接和交叉连接

MySQL笔记 sql99外连接和交叉连接

外连接

应用场景:

用于查询一个表中有,另一个表没有的记录

特点:

1.外连接的查询结果为主表中的所有记录

如果从表中有和它匹配的,则显示匹配的值

如果从表中没有和它匹配的,则显示null

往外链接查询结果=内连接结果+主表中有而从表没有的记录

2.左外连接,left join左边的是主表

右外连接,right join右边的是主表

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

4.全外连接=内连接的结果+表1中有但表2没有的+表2中有但表1没有的

案例:

一.查询编号>3的女神的男朋友信息,如果有则列出详细,如果没有,用null填充

SELECT b.id, b.name, bo.*
FROM beauty b
LEFT OUTER JOIN boys bo
ON b.`boyfriend_id`=bo.id
WHERE b.id>3;

二.查询哪个城市没有部门

SELECT city,department_id
FROM locations l
LEFT OUTER JOIN departments d
ON d.`location_id`=l.`location_id`
WHERE department_id IS NULL;
#或
SELECT city, department_id
FROM departments d
RIGHT OUTER JOIN locations l
ON d.`location_id`=l.`location_id`
WHERE department_id IS NULL;
​

#三.查询部门名为SAL或IT的员工信息

SELECT e.*,department_name
FROM departments d
LEFT OUTER JOIN employees e
ON e.`department_id`=d.department_id
WHERE department_name='SAL' OR department_name='IT';

交叉连接

语法:

select 查询列表

from 表1 别名

cross join 表2 别名

特点:

类似于笛卡尔乘积

总结

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值