我有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