gpt4 book ai didi

mysql - 从映射表中获取数据

转载 作者:可可西里 更新时间:2023-11-01 08:48:31 25 4
gpt4 key购买 nike

我有一个这样的表结构:

bundle_id|service_id 

8|1

8|2

8|3

9|1

9|4

10|1

10|2

10|3

10|4

10|5

现在,我想查询表以获取具有特定服务集的最佳 bundle 。

例如如果我想获取具有服务 1,2 和 3 的包,那么它应该返回 8(而不是 10)。谁能帮我查询一下?

最佳答案

试试这个:

SELECT bundle_id 
FROM mappings
WHERE service_id IN (1, 2, 3)
GROUP BY bundle_id HAVING COUNT(DISTINCT service_id) = 3
ORDER BY bundle_id LIMIT 1;

编辑

SELECT m.bundle_id  
FROM mappings m
INNER JOIN (SELECT bundle_id, COUNT(DISTINCT service_id) serviceIdCnt
FROM mappings GROUP BY bundle_id
) A ON m.bundle_id = A.bundle_id
WHERE m.service_id IN (1, 2, 3)
GROUP BY m.bundle_id HAVING COUNT(DISTINCT m.service_id) = 3
ORDER BY A.serviceIdCnt LIMIT 1;

检查 SQL FIDDLE DEMO

输出

| BUNDLE_ID |
|-----------|
| 8 |

关于mysql - 从映射表中获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21013079/

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