MySQL根据一些匹配的字段发现重复项,而有些则没有

时间:2018-12-17 15:50:46

标签: mysql

我正在尝试创建一个MySQL游戏光盘查询,以根据某些值相同而另一些不同的值找到一些重复项。

我需要字段“名称”,“光盘”,“平台”,“区域”相同。 但是我还需要字段“版本”不同。

我已经尝试了许多查询来执行此操作,例如下面的查询,但是似乎都无法按需工作。

SELECT *
FROM media.amps_2000_box_a
   INNER JOIN (SELECT *
           FROM   media.amps_2000_box_a
           GROUP  BY name
           HAVING COUNT(name) > 1) dup
       ON media.amps_2000_box_a.name = dup.name and media.amps_2000_box_a.disk = dup.disk and media.amps_2000_box_a.format = dup.format and media.amps_2000_box_a.region = dup.region and media.amps_2000_box_a.version<> dup.version
 order by dup.name;

任何人都可以帮助我解决此查询吗?

谢谢。

光滑

1 个答案:

答案 0 :(得分:0)

也许我遗漏了一些东西,但是解决方案似乎很简单:

SELECT   DISTINCT
         amps1.name,
         amps1.disk,
         amps1.platform,
         amps1.region
FROM     media.amps_2000_box_a amps1
JOIN     media.amps_2000_box_a amps2
  ON     amps1.name = amps2.name
 AND     amps1.disk = amps2.disk
 AND     amps1.platform = amps2.platform
 AND     amps1.region = amps2.region
 AND     amps1.version <> amps2.version
ORDER BY amps1.name;