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中更严格,不但要求个数相同,而且还要求类型对应相同。

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

 

posted @ 2020-12-10 08:47  爱好编程的王能能  阅读(167)  评论(0编辑  收藏  举报