在数据库中,JOIN 操作用于结合来自两个或多个表的数据,基于它们之间的相关列。JOIN 是关系数据库查询中一个非常重要的功能,允许你从多个表中提取相关的数据。以下是几种常见的 JOIN 类型及其用法:
-
INNER JOIN: 返回两个表中匹配的记录。如果两个表中有至少一个匹配,则会在结果集中出现。
SELECT columns FROM table1 INNER JOIN table2 ON table1.common_column = table2.common_column;
-
LEFT JOIN (或 LEFT OUTER JOIN): 返回左表中的所有记录,即使在右表中没有匹配的记录。如果右表中没有匹配的记录,结果集中相应的列将包含NULL。
SELECT columns FROM table1 LEFT JOIN table2 ON table1.common_column = table2.common_column;
-
RIGHT JOIN (或 RIGHT OUTER JOIN): 返回右表中的所有记录,即使在左表中没有匹配的记录。如果左表中没有匹配的记录,结果集中相应的列将包含NULL。
SELECT columns FROM table1 RIGHT JOIN table2 ON table1.common_column = table2.common_column;
-
FULL JOIN (或 FULL OUTER JOIN): 返回两个表中所有的记录。如果左表或右表中没有匹配的记录,结果集中相应的列将包含NULL。
SELECT columns FROM table1 FULL JOIN table2 ON table1.common_column = table2.common_column;
-
CROSS JOIN: 返回两个表中所有记录的笛卡尔积。每个左表的记录都会与右表的每个记录结合。
SELECT columns FROM table1 CROSS JOIN table2;
在使用 JOIN 时,务必根据查询的需求选择合适的类型,并确保 ON 子句中的条件正确,以获得预期的结果。