一个SQL问题,一个订单中有多个产品。您想查询所有订单信息,包括产品a,产品B和产品C。非常感谢您的帮助 数据库:oracle 订单明细
orderNo goods
1001 A
1001 B
1001 C
1001 D
1002 A
1003 A1
1003 B1
1003 C
1003 D
1004 A
………… 如何找到1001?
非常感谢您的帮助!
答案 0 :(得分:0)
您可以使用聚合,并使用having
子句进行过滤:
select order_no
from order_details
where goods in ('A', 'B', 'C')
group by order_no
having count(*) = 3
如果相同的goods
对于给定的order_no
可能会出现多次,则您需要having count(distinct goods) = 3
而不是having count(*) = 3
。
答案 1 :(得分:0)
您需要GROUP BY
和HAVING
如下:
SELECT ORDERNO
FROM YOUR_TABLE
WHERE
GOODS IN ( 'A', 'B', 'C')
GROUP BY ORDERNO
HAVING COUNT(DISTINCT GOODS) = 3
干杯!