mysql根据一些匹配字段和一些不匹配字段查找重复项

jchrr9hc  于 2021-06-15  发布在  Mysql
关注(0)|答案(1)|浏览(244)

我正在尝试创建一个游戏光盘的mysql查询,根据一些相同的值和一些不相同的值来查找一些副本。
我需要字段'name'、'disc'、'platform'、'region'相同。但我也需要“version”字段不同。
我已经尝试了许多查询来实现这一点,比如下面的一个,但似乎没有一个像预期的那样工作。

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;

有人能帮我解决这个问题吗?
提前谢谢。
光滑的

7xzttuei

7xzttuei1#

也许我遗漏了什么,但解决方法似乎很简单:

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;

相关问题