【发布时间】:2022-01-25 07:08:52
【问题描述】:
假设我有一张这样的桌子,
| id | tagId |
|---|---|
| 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 中搜索两个以上的值,所以这对我来说效率低下。
我确信这是标签搜索之前遇到的问题。你有什么建议?更改表格格式?
【问题讨论】:
标签: sql sql-server select relational-division