对三个表进行连接查询

编程语言 2026-07-12

我有三张表 OrdersCustomerProductSizesOptionsProductSizesOptions

Orders:

订单ID 姓氏 发货日期
45 Jones 01/01/2025
43 Smith 04/02/2025

CustomerProductSizesOptions:

订单ID 产品选项尺寸ID 客户产品尺寸选项ID
45 216744 695746
43 225622 690056
43 209876 654345

ProductSizesOptions:

产品选项尺寸ID 产品选项ID
216744 1627
225622 3456

我们有一个订单数据库,我想查询一个 ProductOptionID,并在该订单拥有特定的 ProductOptionID 时返回 OrderIDs、SurnameDeliveryDate。例如,ProductOptionID = 1627

我在让连接(JOIN)工作方面遇到了困难,谁能帮忙吗?我知道可以在 SELECT 之后使用DISTINCT,只返回每个订单ID的一个实例,这会很有用。

解决方案

你没有提到你使用的SQL引擎,但在任何引擎上都应该能工作。

SQL:

SELECT o.OrderID,
       o.Surname,
       o.DeliveryDate
FROM ProductSizesOptions p
JOIN CustomerProductSizesOptions c ON p.ProductOptionSizeID = c.ProductOptionSizeID
JOIN Orders o ON c.OrderID = o.OrderID
WHERE ProductOptionID = 1627

输出:

┌─────────┬─────────┬──────────────┐
│ OrderID │ SurName │ DeliveryDate │
│  int32  │ varchar │     date     │
├─────────┼─────────┼──────────────┤
│   45    │ Jones   │ 2025-01-01   │
└─────────┴─────────┴──────────────┘
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。

相关文章