寻找重复的细胞

时间:2019-04-21 20:13:18

标签: sql

假设我们有一个电影表(标题,年份,导演,流派),标题和年份就是身份。

为什么要查找重复的标题,此查询是错误的?

SELECT DISTINCT title
FROM movies m1, movies m2
WHERE m1.title = m2.title AND m1.year != m2.year

1 个答案:

答案 0 :(得分:0)

从语法上讲这是错误的,因为title不合格,因此引用不能消除歧义。

通俗地说是错误的,因为您使用的是古老的join语法。

从逻辑上讲这可能是错误的,因为它在一年之内找不到重复项。

我建议进行简单汇总:

SELECT m.title
FROM movies m
GROUP BY m.title
HAVING COUNT(*) >= 2;

如果您确实希望在不同的年份使用它们,则可以添加AND MIN(m.year) <> MAX(m.year)

相关问题