我有一個表來存儲動態屬性如何編寫一個sql來獲取這個動態表中的記錄?
的結構是這樣的:
id itemid value
---- ------ ------
1 1 A
2 2 B
3 3 C
4 1 B
5 2 C
因此,當我通過多值參數
- 通行證值
A B
結果爲itemid1
- 傳遞值
B
結果itemid1 2
- 通價值
B C
結果2
如何我寫這篇文章的SQL? 順便說一句,我使用mysql
我有一個表來存儲動態屬性如何編寫一個sql來獲取這個動態表中的記錄?
的結構是這樣的:
id itemid value
---- ------ ------
1 1 A
2 2 B
3 3 C
4 1 B
5 2 C
因此,當我通過多值參數
A B
結果爲itemid 1
B
結果itemid 1 2
B C
結果2
如何我寫這篇文章的SQL? 順便說一句,我使用mysql
假設(itemid, value)
有UNIQUE
約束:
SELECT itemid
FROM tableX
WHERE value IN ('A', 'B') -- the list
GROUP BY itemid
HAVING COUNT(*) = 2 ; -- the size of the list
你應該能夠得到你正在尋找使用SQL INTERSECT查詢的行爲。這裏是一個簡單的例子。
選擇的itemid FROM MYTABLE其中value = 'A' INTERSECT 選擇的itemid FROM MYTABLE其中value = 'B'
Thx但我在谷歌搜索這個功能,它似乎只爲甲骨文?我使用mysql – chanjianyi 2013-03-20 14:29:30
這可能有所幫助:http://stackoverflow.com/questions/2621382/intersect-in-mysql – 2013-03-20 14:31:55
可以使問題請更清楚一點?還包括你到目前爲止嘗試過的。 – 2013-03-20 14:07:59
@Teifi對不起,我用ipad發表這個話題,它很難編輯,我只是想怎麼寫sql,我真的不知道如何選擇在這張表 – chanjianyi 2013-03-20 14:12:26
-1使用iPad。 – Kermit 2013-03-20 14:16:16