回答

收藏

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

技术问答 技术问答 281 人阅读 | 0 人回复 | 2023-09-12

我有一个产品ID列表,我想找出哪些订单包含所有这些产品。订单表的结构如下:
5 k2 l  \8 |/ W# O! corder_id | product_id----------------------        | 222        |5552          | 333显然,我可以用PHP有些循环是这样做的,但我想知道是否有一种优雅的方法可以完全实现mysql中完成。我理想的幻想查询将是这样的:
$ g0 X" u5 w; p# O# H' bSELECT order_idFROM ordersWHERE (222,555) IN GROUP_CONCAT(product_id)GROUP BY order_id有希望还是应该读托尔金?另外,出于好奇,如果不能mysql是否还有其他具有此功能的数据库?
( F5 Z+ w( ^  b% Q9 T; f7 y$ ?1 A% p8 x                                                                6 e( y( R. I. h
    解决方案:                                                               
+ B* c% a4 E8 p+ g0 z; s3 }: m                                                                你很亲密
5 |9 }' g) ]  z4 j) r: t" V! ySELECT order_idFROM ordersWHERE product_id in (222,555) GROUP BY order_idHAVING COUNT(DISTINCT product_id) = 2关系代数中的出于好奇问题可以通过除法简单地实现。AFAIK尚无RDBMS实施任何扩展,使其在SQL变得如此简单。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则