(一)内连接与外连接区别

 创建两张表

CREATE TABLE `a_table` (
  `a_id` int(11) DEFAULT NULL,
  `a_name` varchar(10) DEFAULT NULL,
  `a_part` varchar(10) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8
CREATE TABLE `b_table` (
  `b_id` int(11) DEFAULT NULL,
  `b_name` varchar(10) DEFAULT NULL,
  `b_part` varchar(10) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8

表测试数据

一、内连接(自然连接)

只有两个表相匹配的行才能出现在结果集中,舍弃不匹配的数据,所以可能造成表中数据的丢失。

关键字:inner join on

语句:select * from a_table a inner join b_table b on a.a_id = b.b_id;

执行结果:

二、外连接 

外连接不仅包含符合连接条件的行,而且还包含左表(左外连接)、右表(右外连接)或两个边接表(全外连接)中的所有数据行。

①左外连接left outer join 、left join

关键字:left join on / left outer join on

语句:select * from a_table a left join b_table b on a.a_id = b.b_id;

执行结果:

left join 是left outer join的简写,它的全称是左外连接,是外连接中的一种。

②右外连接right join、right outer join

关键字:right join on / right outer join on

语句:select * from a_table a right outer join b_table b on a.a_id = b.b_id;

执行结果:

③全外连接

目前mysql不支持

参考:https://blog.csdn.net/plg17/article/details/78758593

 

posted @ 2019-03-20 19:06  测试开发分享站  阅读(326)  评论(0编辑  收藏  举报