我有3个表:SQL加入只有当所有记录都匹配
- CP_carthead(idOrder)
- CP_cartrows(idOrder,idCartRow)
- CP_shipping(idCartRow,idShipping,dateShipped)
每个idOrder可以有多个idCartRows。
我想获得所有订单,其中全部它的idCartRows存在于CP_shipping中。这看起来应该很简单,但我在网上找不到太多。
这里是我的查询现在:
SELECT
s.idOrder
, s.LatestDateShipped
FROM
CP_carthead o
LEFT OUTER JOIN (
SELECT
MAX(s.dateShipped) [LatestDateShipped]
, r.idOrder
FROM
CP_shipping s
LEFT OUTER JOIN CP_cartrows r ON s.idCartRow = r.idCartRow
GROUP BY
r.idOrder
) s ON o.idOrder = s.idOrder
从查看查询为什么不使用子查询并删除外部?并将'left join'改为'CP_cartrows'为'inner join' – Magnus