MySQL如何实现多表连接?

MySQL可以使用JOIN操作实现多表连接。基本语法为:

sql
SELECT ...
FROM table1 
JOIN table2 
ON table1.col = table2.col;

这会将table1和table2连接在一起,查询结果中包含两张表的字段数据。

常见的JOIN类型有:

  1. INNER JOIN:只返回两张表中连接字段匹配的行。
sql
SELECT * 
FROM table1 
INNER JOIN table2 
ON table1.col = table2.col;
  1. LEFT JOIN:返回左表(table1)所有的行,以及连接字段匹配的右表(table2)行。右表不匹配的行用NULL填充。
sql
SELECT * 
FROM table1
LEFT JOIN table2 
ON table1.col = table2.col;
  1. RIGHT JOIN:类似LEFT JOIN,只是返回右表所有的行和连接匹配的左表行。左表不匹配的行用NULL填充。
sql
SELECT *
FROM table1
RIGHT JOIN table2
ON table1.col = table2.col;  
  1. OUTER JOIN:返回左右表所有的行,并对不匹配的行用NULL填充。
sql
SELECT *
FROM table1 
OUTER JOIN table2
ON table1.col = table2.col;

JOIN除了用于连接表之外,也可以用于连接字查询的结果。例如:

sql
SELECT * FROM 
(SELECT * FROM table1 WHERE ...) AS t1
JOIN table2
ON t1.col = table2.col;