2015-02-17 106 views
0

我的数据表结构(我会保持尽可能简单):MySQL的选择所有disctinct ID,所有行匹配,其中接近

ID  col1 col2 
1  1  1 
1  0  1 
1  1  1 
2  1  1 
2  0  1 
3  1  1 
3  1  1 

我需要每一个ID其中,鉴于ID的所有条目,col1 = 1和col2 = 1。

因此,在这种情况下,应该只给出ID3,因为它所有的col1 = 1的条目也都有col2 = 1。

我试过一些连接,试图使用类似选择min(col2)col1 = 1加入a.ID = b.ID本身上的同一张表。

现在我迷路了,谢谢你们。

回答

3
select id 
from your_table 
group by id 
having sum(col1 = 0) = 0 
and sum(col2 = 0) = 0 
+0

该请求,因为它是没有工作,但我设法使其工作是这样的: “由具有ID总和(COL1 = 1选择表群组ID )= sum(col2 = 1)“。谢谢 – WaveZ 2015-02-18 12:30:20

0

的另一种方法:

SELECT id 
FROM table1 
GROUP BY id 
HAVING SUM(col1) = COUNT(id) 
    AND SUM(col2) = COUNT(id)