我有这个数据库表:
我想查询具有相同编号的所有No Columns。 所以最终的结果应该是:
ID No Name
1 53 Will
2 346 James
3 53 Someone
4 346 Elli
没有5 32 Mat
因为" 32"与其他任何东西都没有匹配。
到目前为止,这是我的查询,但它并不像我想要的那样工作:
SELECT * FROM
test
WHERENo
=No
;
答案 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
)