SQL 超连接查询

[toc]
用于两张及两张以上的表,显示满足条件的记录,和不满足条件的记录(以null显示)

内连接查询 inner jion

  • 例1:显示职工姓名,及其所在仓库的城市信息
select 姓名,城市 from 仓库 inner jion 职工 on 职工.仓库号=仓库.仓库号

带条件的内连接查询
- 例2:显示城市不为空、姓名含“王”的姓名和城市

select 姓名,城市 from 仓库 inner jion 职工
    on 职工.仓库号=仓库.仓库号 
    and 城市 is not null 
    and 姓名 like '%王%'

多表的内连接查询
- 例3:显示职工所在城市、面积、姓名、工资和金额,条件:工资大于1800,面积小于1000,金额不等于16600

select 城市,面积,姓名,工资,金额 from 仓库
    inner join 职工 on 职工.仓库号=仓库.仓库号
    inner join 订单 on 职工.职工号=订单.订单号
    and 工资>1800 and 面积<1000 and 金额!=16600 

左连接查询 left join

左表不满足条件的记录也会显示
- 例1:显示城市不为空,姓名含“王”的姓名和信息

select 姓名,城市 from 仓库 left join 职工
    on 职工.仓库号=仓库.仓库号
    and 城市 is not null and 姓名 like '%王%'

tip:第一张表仓库表为左表
结果会显示左表为NULL的信息

  • 例2:显示职工所在城市、面积、姓名、工资和金额,条件:工资大于1800,面积小于1000,金额不等于16600
select 城市,面积,姓名,工资,金额 from 仓库
    left join 职工 on 职工.仓库号=仓库.仓库号
    left join 订单 on 职工.职工号=订单.订单号
    and 工资>1800 and 面积<1000 and 金额!=16600 

表一:仓库表,表二:职工表,表三:订单表
第一个left join:仓库表|职工表
*第二个left join:职工表|订单表
所以仓库表和职工表不满足条件的记录也会显示,为NULL*

右连接查询 right jion

方法同左连接

全连接查询 full join

方法同左连接

综合应用

  • 例:仓库表与职工表左连接,职工表与订单表右连接
    方法同左连接的例2

猜你喜欢

转载自blog.csdn.net/weixin_41471128/article/details/81806208