MySQL可以使用JOIN操作实现多表连接。基本语法为:
sql
SELECT ...
FROM table1
JOIN table2
ON table1.col = table2.col;
这会将table1和table2连接在一起,查询结果中包含两张表的字段数据。
常见的JOIN类型有:
- INNER JOIN:只返回两张表中连接字段匹配的行。
sql
SELECT *
FROM table1
INNER JOIN table2
ON table1.col = table2.col;
- LEFT JOIN:返回左表(table1)所有的行,以及连接字段匹配的右表(table2)行。右表不匹配的行用NULL填充。
sql
SELECT *
FROM table1
LEFT JOIN table2
ON table1.col = table2.col;
- RIGHT JOIN:类似LEFT JOIN,只是返回右表所有的行和连接匹配的左表行。左表不匹配的行用NULL填充。
sql
SELECT *
FROM table1
RIGHT JOIN table2
ON table1.col = table2.col;
- 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;