mysql教程(四)连接查询

 

1、在sql中一般分为内连接、外连接、自连接

  内连接使用inner join ,在实际使用中一般省略inner;

  外连接使用left/right outer join ,在实际使用中一般省略outer.

2、inner join

  * 内连接只查询相等的数据(连接条件相等的数据)。

  * 表1 inner join 表2 on 关联条件

  * 做连接查询的时候一定要写上关联条件

3、left join

  左连接以左面的表为准和右边的表比较,和左表相等的不相等都会显示出来,右表符合条件的显示,不符合条件的不显示。

  示例:select e.ename, e.sal, d.dname from emp e right outer join dept d on e.deptno=d.deptno;

4、right join

  正好与左连接相反。

  示例:select e.ename, e.sal, d.dname from dept d left outer join emp e on e.deptno=d.deptno;

5、自连接

  “自连接”,只有一张表连接,具体的查询方法,把一张表看作两张表即可。

  示例:select e.ename, m.ename from emp e, emp m where e.mgr=m.empno;

6、注意

  在mysql中没有full outer join 全连接,如果想使用的话,可以使用union 将左连接和右连接连接起来;

  union合并结果集的时候,需要查询字段对应个数相同。在Oracle中更严格,不但要求个数相同,而且还要求类型对应相同。

  使用连接时,一定要写上关联条件,不然连接会变成笛卡尔积,结果与预期不符。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值