MySQL联结(JOIN)用于连接两个或多个表,将它们之间的行相关联。联结条件是用于确定哪些行彼此相关的规则,这些规则在联结两个表时被使用。MySQL支持以下几种联结条件:
- INNER JOIN:内连接,只返回两个表中匹配的行,其联结条件需满足交集的条件。
SELECT *
FROM table1
INNER JOIN table2
ON table1.column_name = table2.column_name;
- LEFT JOIN:左连接,返回包含左表所有行以及右表中与左表匹配的行,如果右表中没有匹配的行,则返回NULL。联结条件需满足左表的条件。
SELECT *
FROM table1
LEFT JOIN table2
ON table1.column_name = table2.column_name;
- RIGHT JOIN:右连接,返回包含右表所有行以及左表中与右表匹配的行,如果左表中没有匹配的行,则返回NULL。联结条件需满足右表的条件。
SELECT *
FROM table1
RIGHT JOIN table2
ON table1.column_name = table2.column_name;
- FULL OUTER JOIN:全外连接,返回左表与右表中所有的行,并将行按照联结条件进行匹配。如果左表中没有匹配的行,则返回NULL,如果右表中没有匹配的行,则也返回NULL。
SELECT *
FROM table1
FULL OUTER JOIN table2
ON table1.column_name = table2.column_name;
- SELF JOIN:自联结,是将同一个表按照不同的条件进行联结。联结条件与其他连接方式相同。
SELECT *
FROM table1 T1, table1 T2
WHERE T1.column_name = T2.column_name;