MySql复习--(5)外连接和子查询

学到这里感觉难度开始加大,因此还是把脚步放慢一点,认真学

SELECT e.last_name 员工,m.last_name 上司
FROM employees e
INNER JOIN employees m
ON e.manager_id=m.employee_id;

#二、外连接
/*
一个表的一行去依次匹配另一个各行的数据
应用场景:一个表中有,另一个表没有的
特点:
1、外连接的查询结果为主表中的所有记录
若从表有匹配的,则显示匹配的值
若从表无匹配的,则显示null
外连接查询结果=内连接结果+主表中有而从表无匹配的结果
2、左外连接:left join左边的是主表
右外连接:right join右边的是主表

*/

交叉连接 cross join 笛卡尔乘积

子查询:比较有难度

/*
含义:(内部嵌套)
出现在其他语句中的select语句,称为子查询或内查询
外部的查询语句,称为主查询或外查询

分类:
按子查询出现位置:
select后:
仅支持标量子查询
from 后:
支持子查询
where或having后:
标量子查询、列子查询、行子查询
exists后(相关子查询):
表子查询
按结果集的行列数:
标量子查询(结果集只有一行一列)
列子查询(结果集一列多行)
行字查询(多行多列)
表子查询(结果集)
*/

SELECT b.name,bo.*
FROM beauty b LEFT JOIN boys bo
ON b.boyfriend_id=bo.id
WHERE bo.id IS NULL
;

SELECT d.*,e.employee_id
FROM departments d
LEFT OUTER JOIN employees e
ON d.department_id=e.department_id
WHERE e.employee_id IS NULL;

USE girls;
SELECT bo.*
FROM beauty b LEFT OUTER JOIN boys bo
ON b.boyfriend_id=bo.id
WHERE b.id>3 ;

SELECT city,d.*
FROM departments d
RIGHT OUTER JOIN locations l
ON d.manager_id=l.location_id
WHERE d.location_id IS NULL;

#一、where或having后
1、标量子查询(单行子查询)
2、列子查询(多行子查询)

3、行子查询(多列多行)
特点:
1.子查询放在小括号内
2.子查询一般放在条件的右侧
3.标量子查询,一般搭配着单行操作符使用

列子查询:一般搭配着多行操作符使用
IN 、 ANY|SOME ALL

#1标量子查询

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值