我有3张桌子:
- CP_carthead(idOrder)
- CP_cartrows(idOrder,idCartRow)
- CP_shipping(idCartRow、idShipping、dateShipped)
每个 idOrder 可以有多个 idCartRow。
我想获得所有订单all它的 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
您的查询返回“s”中的行,而不是订单。根据你的问题,我想出了这个查询:
select o.*
from CP_Carthead o
where o.orderId in (select cr.idOrder
from cp_cartrows cr left outer join
cp_shipping s
on cr.idCartRow = s.IdCartrow
group by cr.idOrder
having count(s.idCartRow) = COUNT(*)
)
中的子查询in
声明正在获取所有手推车都在运输中的订单。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)