Left join 和 right join 都是 SQL 中的 JOIN 操作,用于将两个表格中的数据进行联合查询。它们的区别在于哪个表格是左表格,哪个表格是右表格。
Left join 返回左表格中所有的行以及与右表格中匹配的行。如果右表格中没有匹配的行,则返回 NULL 值。
Right join 返回右表格中所有的行以及与左表格中匹配的行。如果左表格中没有匹配的行,则返回 NULL 值。
下面的示例将会更好地说明它们之间的区别。假设我们有两个表格,一个是 Customers 表格,另一个是 Orders 表格。Customers 表格包含了所有客户的信息,而 Orders 表格包含了每个客户的订单信息。Customers 表格和 Orders 表格之间有一个共同的字段 CustomerID,用于连接这两个表格。
左连接操作:
SELECT Customers.CustomerName, Orders.OrderID
FROM Customers
LEFT JOIN Orders
ON Customers.CustomerID = Orders.CustomerID;
右连接操作:
SELECT Customers.CustomerName, Orders.OrderID
FROM Customers
RIGHT JOIN Orders
ON Customers.CustomerID = Orders.CustomerID;
在左连接操作中,我们将会得到所有客户的名字,而且如果他们有订单,我们也将会得到他们的订单号。如果他们没有订单,订单号将会是 NULL。
在右连接操作中,我们将会得到所有订单的订单号,而且如果客户有订单,我们也将会得到他们的名字。如果客户没有订单,名字将会是 NULL。
因此,左连接和右连接的主要区别在于哪个表格是保留全部行,哪个表格是只保留匹配行。