在实际开发过程中 MySQL 表连接是经常用到的,但是还是有很多人分不清,这里直接通过结构图表示,大的分为两种内连接和外连接,而外连接又分为左连接、右连接和全连接。
- 内连接(inner join):只包含匹配的记录。
- 外连接(outer join):除了包含匹配的记录还包含不匹配的记录。
- 左连接(left join):返回匹配的记录,以及表 A 多余的记录。
- 右连接(right join):返回匹配的记录,以及表 B 多余的记录。
- 全连接(full join):返回匹配的记录,以及表 A 和表 B 各自的多余记录。
四种连接的 SQL 语句如下:
SELECT * FROM A
INNER JOIN B ON A.book_id=B.book_id;
SELECT * FROM A
LEFT JOIN B ON A.book_id=B.book_id;
SELECT * FROM A
RIGHT JOIN B ON A.book_id=B.book_id;
SELECT * FROM A
FULL JOIN B ON A.book_id=B.book_id;
有两种图可以表示表连接的方式。
韦恩图:
关系图: