随手一记3(Mysql)多表联合查询

多表联合查询

sql99方式
语法:
		select 查询列表
        from 表1 别名 【连接类型】
        join 表2 别名
        on 连接条件
        【where筛选条件】
        【group by 分组】
        【having 筛选条件】
        【order by 排序】
分类:
内连接 inner
外连接
	左外 left 【outer】outer可以省略
    右外 right 【outer】
    全外 full 【outer】

内连接

语法:
	select 查询列表
    from 表1 别名 inner
    join 表2 别名
    on 连接条件
        【where筛选条件】
        【group by 分组】
        【having 筛选条件】
        【order by 排序】
分类:等值连接
		非等值连接
        自连接
特点:
	inner可以省略

*/
#案例一:查询员工名和部门名
select last_name,department_name
from employees e inner
join department d
on e.department_id=d.department_id;
#案例二:查询名字中包含e的员工名和工种名
select last_name,job_title
from employees e inner
join job j
on e.job_id=j.job_id
where last_name like “%e%”;

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

特点:
1.外连接的查询结果为表中的所有记录
如果从表中有和他匹配的值,则显示匹配的值
如果从表中没有与他匹配的值,则显示null
外连接查询寻结果= 内连接结果+主表中有而从表中没有的结果
2.左外连接:left join左边是主表
右外连接:right join 右边是主表
3.左外和右外交换两个表的顺序,可以实现同样的效果

查询的来自哪个表,哪个 就是主表
主键绝对不为null
语法:
左外连接:
select 查询列表
from 表1
left outer joinn 表2
on【链接条件】
where【限制条件】
右外连接:
select 查询列表
from 表1
right outer join 表2
on【链接条件】
where【限制条件】
*/

/*
全外连接
全外连接=内连接的结果+表一中有但表二中没有的+表二中有表一中没有的
语法:
select 查询列表
from 表1
full join begin
on a.key = b.key
*/

/*
子查询
含义:
出现在其他语句中的select语句,称为子查询或者内查询

分类:
按子查询出现的位:
SELECT后面
仅仅支持标量子查询
from后面
支持表子查询
where或having后面★
标量子查询√
列子查询√

        行子查询(用的较少)
    exists后面(相关子查询)
		表子查询

按照结果集的行列数不同:
标量子查询(结果集只有一行一列)
列子查询(结果集只有一列多行)
行子查询(结果集只有一行多列)
表子查询(结果集一般多行多列)
*/

#where或having后面
/*
特点:
子查询放在小括号内、
子查询一般放在条件右侧
标量子查询:一般搭配着多行操作符使用
*/
#返回job_id与141号员工相同,salary比143号员工多的员工 姓名,job_id ,和工资
select last_name,job_id,salary
from employees
where job_id=(
select job_id
from employees
where employees_id = 141
)
and salary>(
select salary
from employees
where job_id = 143
)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值