2011-09-16 77 views
1

让我稍微解释一下。 想象我有这样一个表:如何只选择具有相同数量的重复列的行?

id | xid | name 
--------------- 
1 | 29 | hi 
2 | 29 | this 
3 | 38 | an 
4 | 87 | example 
5 | 87 | for 
6 | 29 | stackoverflow 

我想选择只能有3 XID共同的行,所以在这个例子那就是:

id | xid | name 
---------------- 
1 | 29 | hi 
2 | 29 | this 
6 | 29 | stackoverflow 

我怎样才能做到这一点只有一个MySQL查询?

回答

1

试试这个

SELECT id, xid, [name] 
FROM MyTable 
WHERE xid IN 
(
    SELECT xid FROM MyTable 
    GROUP BY xid 
    HAVING COUNT(xid) = YourNumber 
) x 
ORDER BY xid; 
+0

肯定HAVING COUNT(XID)= 3? – symcbean

相关问题