2016-08-11 18 views
0

我有這樣的一個表:MySQL的,如何讓具有特定列的行

| ID1 | ID2 | 
------------------ 
| 1 | 1 | 
| 2 | 1 | 
| 3 | 1 | 
| 4 | 1 | 
| 5 | 1 | 
| 6 | 1 | 
| 7 | 1 | 
| 8 | 1 | 
| 9 | 1 | 
| 10 | 1 | 
| 11 | 1 | 
| 12 | 1 | 
| 13 | 1 | 
| 1 | 2 | 
| 2 | 2 | 
| 5 | 2 | 
| 1 | 4 | 
| 9 | 4 | 

一些ID1s有1和4的值這樣既:

Wanted values

我想返回這樣的ID1:

| ID1 | 
---------- 
| 1 | 
| 9 | 

我試過一些基本的查詢但我甚至沒有接近..我不能讓這個工作甚至遠程,我需要一些嚴重的幫助,這一個。

+0

是'ID1'應該只有一個獨特的價值? – 1000111

+0

在這個例子中,'WHERE id2 = 4'就足夠了。 – Strawberry

回答

3

試試這個:

select id1 
from yourtable 
where id2 in (1,4) 
group by id1 
having count(distinct id2) = 2 

Demo Here

+0

獨特(有希望)是多餘的。如果不是,那麼OP有更大的問題! – Strawberry

+0

工程就像一個魅力!謝謝一堆! – GotBatteries

1

如果ID1應該只有一個唯一的值,那麼下面的查詢會爲你工作:

SELECT 
ID1 
FROM your_table 
GROUP BY ID1 
HAVING COUNT(DISTINCT ID2) > 1; 

編輯:可能是你正在尋找具有ID2 as 1 and 4 both這些條目。

SELECT 
ID1 
FROM your_table 
WHERE ID2 IN (1,4) 
GROUP BY ID1 
HAVING COUNT(DISTINCT ID2) = 2; 

注:這本來是更好,如果你明確你的表是支持什麼ID1 & ID2組合。

+0

這個答案應該是正確的,爲什麼在這裏downvote? – Blank

+0

乍一看我以爲'ID1'應該只有一個唯一值。第一個答案是基於這個假設。它與實際要求實際上並不匹配。這可能是投票後的原因。 @JPG – 1000111

+0

@ 1000111你的編輯似乎是正確的,但有人毆打你。我會給你一個「大拇指」 - 作爲感謝信! – GotBatteries

相關問題