gpt4 book ai didi

mysql - 如何执行多个 SQL 连接以便返回符合特定条件的实体?

转载 作者:行者123 更新时间:2023-12-01 00:53:45 27 4
gpt4 key购买 nike

我有下表(这是一个 bannerid 和每个可用尺寸的列表):

bannerid, bannersize
--------------------
1, 16
1, 32
1, 128
2, 16
2, 32
2, 128
2, 256
2, 512
3, 16
3, 32
3, 64
3, 128
3, 256
3, 512
3, 1024

我需要能够生成具有所有可能大小(16、32、64、128、256、512、1024)的所有 bannerid 的列表

所以在这个例子中,结果应该是:

bannerid
--------
3, 16
3, 32
3, 64
3, 128
3, 256
3, 512
3, 1024

因为 bannerid 3 具有上述所有可能的尺寸(1 和 2 缺少一些尺寸)。

实现此目标的好方法是什么?我认为有比在同一张表上执行 7 次连接并检查是否存在所有可能的大小组合更好的方法。

我还想要一种方法来控制显示哪个 bannerid:(a) 匹配所有尺寸的那些,或 (b) 匹配我指定的某些尺寸。

最佳答案

试试这个:

select b.* from banners b inner join
( select bannerid,count(bannersize) bl from banners
group by bannerid
having count(bannersize) = (select count(distinct(bannersize)) cl from banners) ) ab
on b.bannerid=ab.bannerid

您也可以在 Sqlfiddle 上试用

关于mysql - 如何执行多个 SQL 连接以便返回符合特定条件的实体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12993831/

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