gpt4 book ai didi

MySQL 调用 : Complete orders with a subset of products

转载 作者:行者123 更新时间:2023-11-29 07:01:22 25 4
gpt4 key购买 nike

我们遇到的问题如下。我们有一个 shop_orders 数据库,其中包含客户下的订单:

Id | User_id
-------------
1 | 1

另一方面,我们有表 shop_order_products,其中包含每个订单的产品,其中字段 order_id 关联两个表:

ID | Order_id | Qty | Product_id | Product_name | Product_price |
-----------------------------------------------------------------
1 | 1 | 2 | 23 | Samsung S5 | 40.5 |
2 | 1 | 1 | 12 | IPhone 6S | 80 |

澄清一下,在此示例中,订单 1 有 2 台三星手机和 1 台 iPhone 手机。

通过表shop_order_products,我们可以通过调用以下命令了解我们在线商店最畅销的产品:

SELECT *, COUNT (*) sales FROM shop_order_products GROUP BY order_id ORDER BY sales DESC

给定产品子集,我们需要知道我们可以获得多少个完整订单。也就是说,如果我们销售最多的产品是 iPhone 6S 和三星 Galaxy S5,那么这两种产品我们会接受多少完整订单。如果订单既包含产品又包含其他产品,则我们的计算中不会考虑该产品。

最佳答案

如果我理解正确的话,您希望订单包含一组给定的产品,而没有其他产品。另外,您似乎没有考虑数量。

所以:

select sop.order_id
from shop_order_products sop
group by sop.order_id
having sum(sop.product_id in (<your list here>)) = count(*);

sum() 计算包含可接受产品的行数(针对每个订单)。 = count(*) 指定这是所有行。

关于MySQL 调用 : Complete orders with a subset of products,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43344754/

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