在SQL中,表连接查询(多表连接查询)是一种常用的操作,用于从两个或多个相关表中查询数据。主要的表连接类型包括内连接(INNER JOIN)、左连接(LEFT JOIN)、右连接(RIGHT JOIN)和全外连接(FULL OUTER JOIN,但并非所有数据库系统都支持)。
### 1. 内连接(INNER JOIN)
内连接返回两个表中匹配连接条件的记录。如果表中有至少一个匹配,则返回行。
SELECT Orders.OrderID, Customers.CustomerName
FROM Orders
INNER JOIN Customers ON Orders.CustomerID = Customers.CustomerID;
### 2. 左连接(LEFT JOIN 或 LEFT OUTER JOIN)
左连接返回左表(FROM子句中的表)的所有记录,以及右表中连接字段相等的记录。如果右表中没有匹配,则结果中右表的部分为NULL。
SELECT Orders.OrderID, Customers.CustomerName
FROM Orders
LEFT JOIN Customers ON Orders.CustomerID = Customers.CustomerID;
### 3. 右连接(RIGHT JOIN 或 RIGHT OUTER JOIN)
右连接返回右表(JOIN子句中的表)的所有记录,以及左表中连接字段相等的记录。如果左表中没有匹配,则结果中左表的部分为NULL。
SELECT Orders.OrderID, Customers.CustomerName
FROM Orders
RIGHT JOIN Customers ON Orders.CustomerID = Customers.CustomerID;
### 4. 全外连接(FULL OUTER JOIN)
全外连接返回左表和右表中的所有记录。当某行在另一个表中没有匹配时,则另一部分包含NULL。注意,并非所有数据库系统都支持全外连接。
SELECT Orders.OrderID, Customers.CustomerName
FROM Orders
FULL OUTER JOIN Customers ON Orders.CustomerID = Customers.CustomerID;
这些连接类型可以根据你的具体需求来选择使用,以实现从多个表中查询和组合数据的目的。