带三个表的SQL查询

bmagni 发布于 2019-03-09 join 最后更新 2019-03-09 14:41 3 浏览

我需要帮助建立一个从三个不同的表返回结果的SQL查询。我已经成功创建了两个表的语句,但无法获得全部三个表。 表格和相关字段如下:

Order        OrderItem       Product
-------      -----------     -----------
orderId      orderId         productCode
status       productCode     productName
             quantity
我正在寻找所需的结果集:
[productCode]    [productName]    [orderCount]
-------------    -----------      ----------
123              widget           3
456              thing            2
结果将按照OrderItem中的productCode分组,Product中的productName以及产品订购和发货的次数进行分组。 发货状态来自Order上的status字段。即只包括OrderItem行,其中Order上的status字段被“运送”。 任何帮助将不胜感激。
已邀请:

cnisi

赞同来自:

尝试这个:

select 
    p.productCode, p.productName, count(o.OrderId) as orderCount,
    sum(oi.quantity) as orderQuantity -- Optional (if you want the sum of products ordered)
from
    [product] as p
    inner join [orderItem] as oi on p.productCode = oi.productcode
    inner join [order] as o on oi.orderId = o.orderId
group by 
    p.productCode, p.productName

fharum

赞同来自:

尝试这个:

SELECT
    c.productCode,
    c.productName,
    COUNT(*) orderCount
FROM Order a
INNER JOIN OrderItem b
ON a.orderId = b.orderId
INNER JOIN Product c
ON b.productCode = c.productCode
WHERE status = 'shipped'
GROUP BY
    c.productCode,
    c.productName