实际操作中经常出现,从 A 表中某些字段显示的内容是 B 中的某些字段
LIFE JOIN 左连接:返回包括左表中的所有记录和右表中连接字段相等的记录
RIGHT JOIN 右连接:返回包括右表中的所有记录和左表中连接字段相等的记录
如:有以下两张表 book, reader;
book 表中的数据
select id, book_name from book;
+----+------------------+
| id | book_name |
+----+------------------+
| 1 | 人性的优点 |
| 2 | 格兰特船长的儿女 |
| 3 | 双城记 |
+----+------------------+
reader 表中的数据
select id, read_to_page, book_name from reader;
+----+--------------+-----------+
| id | read_to_page | book_name |
+----+--------------+-----------+
| 1 | 317 | 3 |
| 2 | 352 | 3 |
| 3 | 381 | 3 |
| 4 | 414 | 3 |
| 5 | 18 | 2 |
| 6 | 101 | 2 |
| 7 | 126 | 2 |
| 8 | 181 | 2 |
| 9 | 202 | 2 |
+----+--------------+-----------+
采用左连接查询
select reader.id, reader.read_to_page, book.book_name from
-> reader LEFT OUTER JOIN book ON reader.book_name = book.id;
+----+--------------+------------------+
| id | read_to_page | book_name |
+----+--------------+------------------+
| 5 | 18 | 格兰特船长的儿女 |
| 6 | 101 | 格兰特船长的儿女 |
| 7 | 126 | 格兰特船长的儿女 |
| 8 | 181 | 格兰特船长的儿女 |
| 9 | 202 | 格兰特船长的儿女 |
| 1 | 317 | 双城记 |
| 2 | 352 | 双城记 |
| 3 | 381 | 双城记 |
| 4 | 414 | 双城记 |
+----+--------------+------------------+
9 rows in set (0.00 sec)
采用右连接查询
select reader.id, reader.read_to_page, book.book_name from
-> reader RIGHT OUTER JOIN book ON reader.book_name = book.id;
+------+--------------+------------------+
| id | read_to_page | book_name |
+------+--------------+------------------+
| 1 | 317 | 双城记 |
| 2 | 352 | 双城记 |
| 3 | 381 | 双城记 |
| 4 | 414 | 双城记 |
| 5 | 18 | 格兰特船长的儿女 |
| 6 | 101 | 格兰特船长的儿女 |
| 7 | 126 | 格兰特船长的儿女 |
| 8 | 181 | 格兰特船长的儿女 |
| 9 | 202 | 格兰特船长的儿女 |
| NULL | NULL | 人性的优点 |
+------+--------------+------------------+
10 rows in set (0.00 sec)