以下查询返回一堆重复的解决方案:
SELECT *
FROM solutions s1, solutions s2
WHERE s2.ID <> s1.ID
AND s2.solution = s1.solution
我只关注重复解决方案的数量,因此无法正常工作(例如,如果有n
个重复项,则会返回n!
行
以下查询 应该只返回那些重复的解决方案,而是它返回0结果:
SELECT *
FROM solutions s1
WHERE s1.ID IN
(
SELECT s2.ID
FROM solutions s2
WHERE s2.ID <> s1.ID
AND s2.solution = s1.solution
)
我不能为我的生活找出原因。 MySQL中的内部查询是否存在我不知道的限制?
答案 0 :(得分:1)
您的内部查询不会返回任何行,因为无法找到s1.ID IN()
从与s1.ID
s不匹配的ID中选择的列表。
答案 1 :(得分:1)
您可以使用COUNT()
轻松确定
SELECT solution, COUNT(id) AS `count`
FROM solutions
GROUP BY solution
HAVING `count` > 1
回答你的问题。您无法在内部查询中引用外部表s1
。