MySQL 内连接、左连接(左外连接)、右连接(右外连接)

创建示例表

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
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

1
SELECT * FROM a_table a INNER JOIN b_table b ON a.a_id = b.b_id;

左连接(左外连接)

LEFT JOINLEFT OUTER JOIN的简写,全称是左外连接,是外连接中的一种。 左(外)连接,以左表为主,返回左表全部,右表返回符合条件的记录。右表记录不存在时显示NULL。

关键字:LEFT JOIN ON / LEFT OUTER JOIN ON

1
SELECT * FROM a_table a LEFT JOIN b_table b ON a.a_id = b.b_id;

右连接(右外连接)

RIGHT JOINRIGHT OUTER JOIN的简写,全称是右外连接,是外连接中的一种。 右(外)连接,以右表为主,返回右表全部,左表返回符合条件的记录。左表记录不存在时显示NULL。

关键字:RIGHT JOIN ON / RIGHT OUTER JOIN ON

1
SELECT * FROM a_table a RIGHT OUTER JOIN b_table b ON a.a_id = b.b_id;

参考