具體演示
用兩個表(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.csdn.net/plg17/article/details/78758593