2015-11-19 95 views
3

我花了數小時尋找答案,但我想我可能不會朝正確的方向看。這裏是我的問題:關於多字段值的SQL查詢

比方說,我有一個簡單的表是這樣的:

entity_id delta option_id 
------------------------------- 
1   0  10 
1   1  11 
2   0  10 
2   1  11 
2   2  12 

我有一個多值字段,我想找到具有option_id的了(10,11,12) ,它應該返回entity_id = 2.我曾嘗試使用IN,但它不是'精確',我的意思是我可以搜索option_id(11,12),它仍然會返回我entity_id 2,這不是我想要的。 我試過所有,但我不認爲這是我想要的。 非常感謝您的幫助。我很確定答案是在其他人發佈的,但我一直沒能找到它。

埃德

回答

3

您使用GROUP BY和HAVING在這裏與你正在尋找的物品找到的元素。

SELECT t.entity_id 
    FROM your_table t 
    WHERE t.option_id IN (10,11,12) 
    GROUP BY t.entity_id 
    HAVING COUNT(DISTINCT t.option_id) = 3; /* because there are 3 elements in the IN clause */ 
+0

我會嘗試一下,看看我是否能夠做到這一點。非常感謝! – Doud

+0

工程就像一個魅力!非常感謝 ! – Doud