假设我们有一个电影表(标题,年份,导演,流派),标题和年份就是身份。
为什么要查找重复的标题,此查询是错误的?
SELECT DISTINCT title
FROM movies m1, movies m2
WHERE m1.title = m2.title AND m1.year != m2.year
答案 0 :(得分:0)
从语法上讲这是错误的,因为title
不合格,因此引用不能消除歧义。
通俗地说是错误的,因为您使用的是古老的join
语法。
从逻辑上讲这可能是错误的,因为它在一年之内找不到重复项。
我建议进行简单汇总:
SELECT m.title
FROM movies m
GROUP BY m.title
HAVING COUNT(*) >= 2;
如果您确实希望在不同的年份使用它们,则可以添加AND MIN(m.year) <> MAX(m.year)
。