gpt4 book ai didi

mysql - 如何查找列表/集合是否包含在另一个列表中

转载 作者:可可西里 更新时间:2023-11-01 07:56:53 26 4
gpt4 key购买 nike

我有一个产品 ID 列表,我想找出哪些订单包含所有这些产品。订单表的结构如下:

order_id | product_id
----------------------
1 | 222
1 | 555
2 | 333

显然我可以在 PHP 中使用一些循环来完成它,但我想知道是否有一种优雅的方法可以纯粹在 mysql 中完成它。我理想的幻想查询是这样的:

SELECT order_id
FROM orders
WHERE (222,555) IN GROUP_CONCAT(product_id)
GROUP BY order_id

我有希望还是应该去读托尔金? :) 另外,出于好奇,如果在 mysql 中不可能,是否有任何其他数据库具有此功能?

最佳答案

你很接近

SELECT order_id
FROM orders
WHERE product_id in (222,555)
GROUP BY order_id
HAVING COUNT(DISTINCT product_id) = 2

关于关系代数中的“出于好奇”问题,这可以通过 division 轻松实现。 . AFAIK 没有 RDBMS 实现了任何扩展,使它在 SQL 中变得如此简单。

关于mysql - 如何查找列表/集合是否包含在另一个列表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12652037/

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