拨开荷叶行,寻梦已然成。仙女莲花里,翩翩白鹭情。
IMG-LOGO
主页 文章列表 查找包含多个长格式条件的ID

查找包含多个长格式条件的ID

白鹭 - 2022-02-17 2096 0 0

假设我有一张这样的桌子,

ID 标签ID
1 1
1 2
1 5
2 1
2 5
3 2
3 4
3 5
3 8

我想选择id,其中tagId包括 2 和 5。对于这个假资料集,它应该回传 1 和 3。

我试过,

select id from [dbo].[mytable] where tagId IN(2,5)

但它分别考虑了2和5。由于 tagId 是动态的,我也不想让我的表格保持宽格式。它可以达到任意数量的列。我还考虑使用两个不同的查询进行过滤以查找(以某种方式)交集。但是,由于在现实生活中我可能会在 tagId 中搜索两个以上的值,这对我来说听起来效率很低。

我确信这是标签搜索之前面临的问题。你有什么建议?改变表格格式?

uj5u.com热心网友回复:

一种选择是计算tagId每个id具有的不同s(来自您正在寻找的)的数量

SELECT   id
FROM     [dbo].[mytable] 
WHERE    tagId IN (2,5)
GROUP BY id
HAVING   COUNT(DISTINCT tagId) = 2
标签:

0 评论

发表评论

您的电子邮件地址不会被公开。 必填的字段已做标记 *