INNER JOIN、LEFT JOIN 和 RIGHT JOIN 是SQL中用于联结表的不同类型的操作。
INNER JOIN
INNER JOIN 是最常用的联结操作,它会返回两个表中符合联结条件的交集。只有当两个表中的行在联结条件下匹配时,才会包含在结果集中。
SELECT *
FROM table1
INNER JOIN table2 ON table1.column = table2.column;
LEFT JOIN
LEFT JOIN 也被称为左外连接,它会返回左表中所有的行,以及右表中符合联结条件的行。如果右表中没有匹配的行,那么在结果集中会显示 NULL 值。
SELECT *
FROM table1
LEFT JOIN table2 ON table1.column = table2.column;
RIGHT JOIN
RIGHT JOIN 也被称为右外连接,它与左外连接相反,会返回右表中所有的行,以及左表中符合联结条件的行。如果左表中没有匹配的行,那么在结果集中会显示 NULL 值。
SELECT *
FROM table1
RIGHT JOIN table2 ON table1.column = table2.column;
区别总结
INNER JOIN 只返回两个表中在联结条件下完全匹配的行,没有匹配的行将被排除。
LEFT JOIN 返回左表中的所有行,以及右表中匹配的行(如果没有匹配的行,会以 NULL 值填充)。
RIGHT JOIN 返回右表中的所有行,以及左表中匹配的行(如果没有匹配的行,会以 NULL 值填充)。
通常来说,INNER JOIN 最常用,因为它会返回两个表之间的交集,而 LEFT JOIN 和 RIGHT JOIN 在特定情况下会更有用,例如需要包含某个表的所有行,而另一个表中只需要匹配的部分。