Oracle SQL Developer查询3个表

用户名

在Oracle sql中,我有这3个具有名称和列的表:1.orders:
customerid orderid(主键)

2.orderlines:orderlineid(主键)orderid productid

3.产品:产品(主键)类别

并且我想找到至少已下达1个订单的客户(customerid),其中包含至少3个不同类别的产品。如果有人可以帮助我进行此查询。非常感谢!

尝试了很多事情,但是没有任何效果,因为我是SQL的新手,这是一个示例,因为我不知道自己在做什么,所以不要给予太多的关注。再次感谢。

select customerid,count(orderid) as total
from (select customerid,orderid,prodid,distinct category
from orders o,orderlines n,products p
where o.orderid=n.orderid and n.prodid=p.prodid )
group by (customerid);
Maheswaran Ravisankar
SELECT DISTINCT customerid 
FROM ORDERS O
INNER JOIN PRODUCTS P
ON (P.prodid = O.prodid)
INNER JOIN ORDERLINES OL
ON (O.prodid = OL.prodid AND O.orderid = P.orderid)
GROUP BY O.customerid,O.orderid
HAVING
COUNT(DISTINCT p.category) >= 3

以您的JOINS风格(也是我的最爱)

SELECT DISTINCT customerid 
FROM ORDERS O,PRODUCTS P,ORDERLINES OL
WHERE (O.prodid = P.prodid)
AND (O.prodid = OL.prodid AND O.orderid = P.orderid)
GROUP BY O.customerid,O.orderid
HAVING COUNT(DISTINCT p.category) >= 3

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章