2011-12-15 54 views
1

我有list_id一个简单的关系表和member_id选择的记录被重复两次使用MYSQL

+---------+--------+ 
|list_id | Member_id| 
+---------+--------+ 
| 0001 | B002 | 
| 0001 | B005 | 
| 0002 | B002 | 
| 0003 | B003 | 
| 0004 | B005 | 
| 0004 | B002 | 
| 0007 | B002 | 
+---------+--------+ 

我要生成一个查询来选择只包含2个成员(在重复list_id表两次)

我到目前为止已经达到了:

使用嵌套查询内部查询选择所有distinct list_ID,外部查询选择count,但它查询不是一个循环,所以我没有得到每一个计数。

回答

6
select list_id 
from yourtable 
group by list_id 
having count(*) = 2 
+0

没关系,它的另一种解决方案比我预期的,所以你能告诉我如何使香港专业教育学院提取的各行的操作从嵌套的查询中,取代for循环逻辑 – 2011-12-15 03:43:45

3

您需要一个aggregate function,在这种情况下,count

SELECT list_id 
FROM mytable 
GROUP BY list_id 
HAVING count(member_id) = 2