mySQL查询相同的列属性

时间:2014-04-08 15:24:26

标签: mysql

我有这个数据库表: enter image description here

我想查询具有相同编号的所有No Columns。 所以最终的结果应该是:

ID  No    Name
1   53    Will
2   346   James
3   53    Someone
4   346    Elli

没有5 32 Mat因为" 32"与其他任何东西都没有匹配。

到目前为止,这是我的查询,但它并不像我想要的那样工作:

  

SELECT * FROM test WHERE No = No;

2 个答案:

答案 0 :(得分:0)

试试这个(更简单,更快):

SELECT T1.* FROM test T1,test T2
WHERE T1.ID<>T2.ID  
AND T1.No=T2.No
ORDER BY T1.ID

结果:

ID  NO    NAME
1   53    Will
2   346   James
3   53    Someone
4   346   Elli

请参阅SQL Fiddle中的结果。

修改 要查看最后的条目,请使用此查询:

SELECT T1.* FROM test T1,test T2
WHERE T1.ID<>T2.ID  
AND T1.No=T2.No
GROUP BY T1.No
ORDER BY T1.ID

结果:

ID  NO  NAME
3   53  Someone
4   346 Elli

请参阅SQL Fiddle中的结果。

答案 1 :(得分:0)

子查询的另一个解决方案:

SELECT *
FROM Test
WHERE NO IN (
    SELECT NO
    FROM Test
    GROUP BY NO
    HAVING COUNT(*) = 2
)

http://sqlfiddle.com/#!2/9b061f/5