mysql 外联查询 左连接、右连接

实际操作中经常出现,从 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)

你可能感兴趣的:(SQL,学习)