查询以获取多次订购特定商品的用户

发布于 2025-01-11 03:03:28 字数 1234 浏览 0 评论 0原文

我有 2 个表、用户和订单 用户:user_id、名称 order: order_id, user_id(外键用户), item_name, Price

想要获取已订购 item_name 'apple' 和 'mangoes' 的 user_ids不止一次。

用户

user_idname
1ABC
2XYZ

订单

order_iduser_iditem_name价格
11苹果12
2211
31苹果2
41芒果22
52香蕉13
62苹果13
71芒果13
81苹果13
92樱桃13
101浆果13
111苹果13

I have 2 tables, users and orders
users: user_id, name
orders: order_id, user_id(foreign key users), item_name, price

want to fetch the user_ids for which item_name 'apple' and 'mangoes' has been ordered more than once.

users

user_idname
1ABC
2XYZ

orders

order_iduser_iditem_nameprice
11apple12
22pears11
31apple2
41mango22
52banana13
62apple13
71mango13
81apple13
92cherry13
101berry13
111apple13

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

策马西风 2025-01-18 03:03:28
WITH ORDERS (order_id,  user_id ,   item_name,  price)AS
(
   SELECT   1,  1,  'apple',    12 UNION ALL
   SELECT 1,    2,  'pears',    11 UNION ALL
   SELECT 1 ,   1,  'apple',    2 UNION ALL
   SELECT 1,    1 , 'mango' ,   22 UNION ALL
   SELECT 1,    2 , 'banana',   13 UNION ALL
   SELECT 1 ,   2,  'apple',    13 UNION ALL
   SELECT 1 ,   1,  'mango' ,   13 UNION ALL
   SELECT 1,    1,  'apple',    13 UNION ALL
   SELECT 1 ,   2 , 'cherry',   13 UNION ALL
   SELECT 1,    1 , 'berry' ,   13 UNION ALL
   SELECT 1,    1,  'apple' ,   13
)
SELECT C.user_id
FROM ORDERS AS C
WHERE C.item_name='mango' OR C.item_name='apple'
GROUP BY C.user_id
HAVING COUNT(C.order_id)>1

不能确定,但​​可能你需要这样的东西

WITH ORDERS (order_id,  user_id ,   item_name,  price)AS
(
   SELECT   1,  1,  'apple',    12 UNION ALL
   SELECT 1,    2,  'pears',    11 UNION ALL
   SELECT 1 ,   1,  'apple',    2 UNION ALL
   SELECT 1,    1 , 'mango' ,   22 UNION ALL
   SELECT 1,    2 , 'banana',   13 UNION ALL
   SELECT 1 ,   2,  'apple',    13 UNION ALL
   SELECT 1 ,   1,  'mango' ,   13 UNION ALL
   SELECT 1,    1,  'apple',    13 UNION ALL
   SELECT 1 ,   2 , 'cherry',   13 UNION ALL
   SELECT 1,    1 , 'berry' ,   13 UNION ALL
   SELECT 1,    1,  'apple' ,   13
)
SELECT C.user_id
FROM ORDERS AS C
WHERE C.item_name='mango' OR C.item_name='apple'
GROUP BY C.user_id
HAVING COUNT(C.order_id)>1

Can not be sure, but may be you need something like this

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文