多表查询又叫做联合查询。MySQL中的联合查询分为两种:一种是内连接,一种是外连接。
1、内连接( inner join)
等值和非等值的连接查询
SELECT 字段1,字段2,… FROM table_1
INNER JOIN table_2
ON table_1.字段x = table_2.字段y;
# INNER JOIN 与 JOIN 是相同的;
# 如table_1中的行在table_2中没有匹配,则不返回;
自身连接查询
数据表与自身进行连接
2、外连接
左外连接(LEFT JOIN)
从左表(table_1)中返回所有的记录,即便在右(table_2)中没有匹配的行
SELECT 字段1,字段2,… FROM table_1 LEFT [ OUTER ] JOIN table_2 ON table_1.字段x = table_2.字段y;
右外连接(RIGHT JOIN)
从右表(table_2)中返回所有的记录,即便在左(table_1)中没有匹配的行
SELECT 字段1,字段2,… FROM table_1 RIGHT [ OUTER ] JOIN table_2 ON table_1.字段x = table_2.字段y;