如何在一个表中返回在MySQL的另一列中共享相同值的重复项?

时间:2018-12-11 23:22:12

标签: mysql sql

在具有相同年份的数字重复的情况下,如何返回ProductNumbers? 这些都在同一张表中。 在下面的示例中,我希望返回ProductNumber 123和456。 解释原因,谢谢!

ProductNumber   Numb     Year
123             45        1
456             45        1
789             45        2
109             54        2

3 个答案:

答案 0 :(得分:1)

以下是使用exists的一种选择:

select * 
from yourtable t
where exists (
    select 1
    from yourtable t2
    where t.productnumber != t2.productnumber 
          and t.numb = t2.numb
          and t.year = t2.year
    )

使用exists,我们检查同一表中是否还有其他记录,它们的productnumber不同,但具有相同的numbyear值。

答案 1 :(得分:0)

您可以使用EXISTS()

SELECT * 
FROM Table T1
WHERE EXISTS
(
    SELECT 1 
    FROM 
        (SELECT Numb ,Year 
        FROM Table
        GROUP BY Numb
                ,Year 
        HAVING COUNT(1)>1
        ) T2
    WHERE T1.Numb = T2.Tumb
      AND T1.Year = T2.Year
)

答案 2 :(得分:0)

您也可以使用INNER JOIN

SELECT t1.ProductNumber
FROM Products t1
INNER JOIN Products as t2
ON t1.ProductNumber != t2.ProductNumber
          AND t1.Numb = t2.Numb
          AND t1.Year = t2.Year