查询中出现两个表的连接,下面通过实例来讲解一下各种连接查询的不同之处

表 a,和表b 如下图
a 表中 有 abcd
mysql 实现表连接(左,右,内,全连接)【转】 Mysql 第1张

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

 b表中有 abcf
mysql 实现表连接(左,右,内,全连接)【转】 Mysql 第2张

内连接:

SELECT * from a INNER JOIN b on a.name=b.id;

得出结果 如图,选择等值的结果(abc)
mysql 实现表连接(左,右,内,全连接)【转】 Mysql 第3张

左连接:

SELECT * from a left JOIN b on a.name=b.id;

查询结果如图,选择a表为基准。(abcd)
mysql 实现表连接(左,右,内,全连接)【转】 Mysql 第4张

右连接:

SELECT * from a right JOIN b on a.name=b.id;

查询结果如图,选择a表为基准。(abcf)
mysql 实现表连接(左,右,内,全连接)【转】 Mysql 第5张

全连接:mysql不支持全连接(full join),可以使用 left join+ union+right join 

(SELECT  * from a left JOIN b on a.name=b.id) UNION   (SELECT  * from a RIGHT JOIN b on a.name=b.id );

结果是全部都显示,如下图:
mysql 实现表连接(左,右,内,全连接)【转】 Mysql 第6张

原文链接:https://jingyan.baidu.com/article/f3e34a12f05bfaf5ea65354a.html

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄