Mysql数据库学习笔记--多表连接查询 2020-2-9

多表连接

自然连接
找列名相同、数据类型相同的列进行等值连接
关键词: natural join
select * from emp natural join dept
等同于: select * from emp,dept where emp.deptno=dept.deptno

自身连接
通过起别名,将一张物理表抽象成多张逻辑表
例:查询emp表中每个员工的姓名和直接上级姓名(employee员工 manager经理)
select employee.ename,manager.ename
from emp employee,emp manager
where employee.mgr=manager.empno

using子句
using(列名) ( 列名是两个表中相同的列名,根据using内的列名进行等值连接)
select * from emp join dept using(deptno)
等同于:select * from emp,dept where emp.deptno=dept.deptno

on子句(解耦,降低语句的复杂度)
select * from emp,dept where emp.deptno=dept.deptno and emp.deptno=10 – 耦合性高
select * from emp join dept on (emp.deptno=dept.deptno) – 解耦

外连接
注:希望哪一个表全部显示,这个表在那一侧就是那一侧外连接
右外连接
right outer join
emp表和dept表进行外连接,将右侧(dept)表中的信息全部显示出来,即使左侧表中无对应连接数据
select * from emp right outer join dept on (emp.deptno=dept.deptno)

全外连接
full outer join (mysql 不支持全外连接)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值