SQL JOIN 三个表

在 SQL 中,我们可以基于公共字段或关系联接三个表。

示例

SELECT
    Customers.first_name,
    Orders.item,
    Shippings.status
FROM Customers
LEFT JOIN Orders ON Customers.customer_id = Orders.customer_id
LEFT JOIN Shippings ON Orders.customer_id = Shippings.customer

这里,SQL 查询对 CustomersOrdersShippings 表执行 LEFT JOIN 操作。

然后它显示 Customers 表中的 first_name 字段,Orders 表中的 item 字段,以及 Shippings 表中的 status 字段。


联接三个表

最常见的联接类型是 INNER JOINLEFT JOINRIGHT JOINFULL OUTER JOIN

我们来看一个使用 INNER JOIN 的例子。

SELECT
    Customers.first_name,
    Customers.last_name,
    Orders.item,
    Shippings.status
FROM
    Customers
INNER JOIN Orders ON Customers.customer_id = Orders.customer_id
INNER JOIN Shippings ON Orders.customer_id = Shippings.customer

这里,SQL 命令

  • Customers 表与 Orders 表联接,其中它们的 customer_id 字段匹配。
  • Orders 表与 Shippings 表联接,其中 Orders 中的 customer_idShippings 中的 customer 字段匹配。
  • Customers 表中选择客户的名字和姓氏。
  • Orders 表中选择商品。
  • Shippings 表中选择配送状态。

使用 AS 别名联接三个 SQL 表

我们可以将 AS 别名与表名一起使用,使查询简短明了。例如,

SELECT
    c.first_name,
    c.last_name,
    o.item,
    o.amount,
    s.status
FROM
    Customers c
JOIN Orders o ON c.customer_id = o.customer_id
JOIN Shippings s ON c.customer_id = s.customer

这里,SQL 命令联接了三个表:CustomersOrdersShippingsCustomers 表别名为 cOrders 表别名为 oShippings 表别名为 s

这使得我们的查询简短明了。

你觉得这篇文章有帮助吗?

我们的高级学习平台,凭借十多年的经验和数千条反馈创建。

以前所未有的方式学习和提高您的编程技能。

试用 Programiz PRO
  • 交互式课程
  • 证书
  • AI 帮助
  • 2000+ 挑战