gpt4 book ai didi

mysql 订单与特定产品

转载 作者:行者123 更新时间:2023-11-29 19:26:15 25 4
gpt4 key购买 nike

我有 3 个表:orders、orders_products 和 products。我已加入他们以获取每个订单的产品..

SELECT o.orders_id, p.products_id, p.item_type 
from orders o
join orders_products op on o.orders_id = op.orders_id
join products p on op.products_id = p.products_id

现在我只想获取仅具有 p.item_type = 1 或 p.item_type = 2 的订单。(如果订单具有类型 1、2 和 3 的产品,则不显示,仅具有产品的订单类型 1 或 2)

最佳答案

如果您只需要订单,则可以使用group byhaving。以下命令获取包含商品 1 和 2 且不含其他商品的订单:

select op.orders_id
from orders_products op join
products p
on op.products_id = p.products_id
group by op.orders_id
having sum(p.item_type = 1) > 0 and
sum(p.item_type = 2) > 0 and
sum(p.item_type not in (1, 2)) = 0;

请注意,不需要 orders 表。

您可以将此 having 子句用于 1 或 2,而不能使用其他子句:

having sum(p.item_type in (1, 2) > 0 and
sum(p.item_type not in (1, 2)) = 0;

关于mysql 订单与特定产品,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42127512/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com