假設我有一張這樣的桌子,
| 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
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/392791.html
標籤:sql sql-server 选择
上一篇:從下拉選單中運行SQL腳本
