2014-07-15 35 views
-1

現在我覺得非常非常愚蠢,因爲我有一個問題,似乎無法弄清楚。找不到一個簡單的mysql查詢

很簡單的MySQL表2列:

ID1 | ID2 
1 |  1 
1 |  2 
2 |  1 

不知道很好如何解釋的條件:我想從列ID1選擇值1,因爲它與值1連接AND 2來自ID2。

這與IN有些相反。

如果我讓 SELECT ID1 FROM X WHERE ID2 IN (1,2)我收到1和2,因爲它是團聚。我想要一個十字路口,就像SELECT ID1 FROM X WHERE ID2 IN BOTH 1 AND 2

我相當確信它與分組有關。

1解決方案是讓

SELECT * FROM 
(SELECT ID1, GROUP_COCAT(ID2) y 
FROM X 
GROUP BY ID1)t 
WHERE t.y = '1,2' 

但是這也不行,因爲我不知道訂單(1,2或2,1),我可以有更多的價值。

希望這很清楚,我很累。

+0

ID2只包含1和2? – Sadikhasan

+0

這只是一個小例子,它將包含更多的值。因爲它可以包含1,2,3,4,如果我搜索1,2我想收到它作爲好結果。 – Cosmin

+0

你能否讓這個問題變得更加模糊?這就是說,我懷疑你正在尋找以下... SELECT a。* FROM a WHERE a.y IN(1,2)GROUP BY a.x HAVING COUNT(*)= 2; – Strawberry

回答

1
SELECT t.* 
FROM TEMP t 
WHERE t.id2 IN (1, 2) 
GROUP BY t.id1 HAVING COUNT(*) = 2 

OR

SELECT t.* 
FROM TEMP t 
WHERE t.id2 IN (1, 2, 3, 4) 
GROUP BY t.id1 HAVING COUNT(*) = 4 
+1

是的,我知道了,就像草莓一樣,你說過,不知道我怎麼沒有那麼做......我會在10分鐘內接受答案 – Cosmin