具体演示
用两个表(a_table 和 b_table),关联字段 a_table.a_id 和 b_table.b_id 来演示一下 MySQL 的内连接、外连接( 左连接、右连接)。
(1)建表语句
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
(2)表测试数据
(3)内连接
关键字: 表名 inner join 表名 on 条件
语句:select * from a_table a inner join b_table b on a.a_id = b.b_id;
执行结果:
说明:组合两个表中的记录,返回关联字段相符的记录,也就是返回两个表的交集部分。
(4)左连接
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 的简写,它的全称是左外连接,是外连接中的一种。左(外)连接,左表 (a_table) 的记录将会全部显示出来,而右表 (b_table) 只会显示符合搜索条件的记录,右表记录不足的地方均显示为 NULL。
(5)右连接
right 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;
执行结果:
说明:right join 是 right outer join 的简写,它的全称是右外连接,是外连接中的一种。右连接与左(外)连接刚好相反,右(外)连接,左表 (a_table) 只会显示符合搜索条件的记录,而右表 (b_table) 的记录将会全部表示出来,左表记录不足的地方均显示为 NULL。
此文借鉴他人文章,此处附上原文链接:https://blog.youkuaiyun.com/plg17/article/details/78758593