内关联(INNER JOIN)和外关联(OUTER JOIN)是 SQL 中连接表的重要操作。它们允许从多个表中检索数据并基于共同列将相关行组合在一起。
内关联
内关联仅检索具有匹配值的表的共同行。它使用 ON 关键字指定连接条件,该条件指定用于连接表的列。例如,以下查询使用内关联连接 Customer 和 Order 表,仅检索具有匹配客户 ID 的行:
SELECT *
FROM Customer
INNER JOIN Order ON Customer.CustomerID = Order.CustomerID;
外关联
外关联检索所有来自一个表的行,即使它们在另一个表中没有匹配项。有三种外关联类型:
左外关联(LEFT OUTER JOIN):检索所有来自左表(表 1)的行,即使它们在右表(表 2)中没有匹配项。它使用 LEFT JOIN 关键字。
右外关联(RIGHT OUTER JOIN):检索所有来自右表的行,即使它们在左表中没有匹配项。它使用 RIGHT JOIN 关键字。
全外关联(FULL OUTER JOIN):检索所有来自两个表的行,无论它们是否有匹配项。它使用 FULL OUTER JOIN 关键字。
例如,以下查询使用左外关联连接 Customer 和 Order 表,检索所有客户,即使他们没有订单:
SELECT *
FROM Customer
LEFT JOIN Order ON Customer.CustomerID = Order.CustomerID;
选择内关联还是外关联
选择使用内关联还是外关联取决于所需的数据类型。内关联用于仅检索具有匹配值的关联行,而外关联用于检索所有行,即使它们没有匹配值。了解两种关联类型之间的区别对于从 SQL 查询中获取所需数据至关重要。