Mysql 获取唯一集和重复集的差异-SQL

Mysql 获取唯一集和重复集的差异-SQL,mysql,sql,join,except,Mysql,Sql,Join,Except,我有两个类似的数据集(表、视图、CTE),其中一个包含唯一的行(由DISTINCT或GROUP by保证),第二个包含重复的行(不涉及主键约束) 如何获得两个数据集的差异,以便在MySql 8中只获得第二个数据集的副本? 假设我有一个名为Animals的表,它存储名称和物种 +---------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Ex

我有两个类似的数据集(表、视图、CTE),其中一个包含唯一的行(由
DISTINCT
GROUP by
保证),第二个包含重复的行(不涉及主键约束)

如何获得两个数据集的差异,以便在MySql 8中只获得第二个数据集的副本? 假设我有一个名为Animals的表,它存储
名称
物种

 +---------+--------------+------+-----+---------+-------+
 | Field   | Type         | Null | Key | Default | Extra |
 +---------+--------------+------+-----+---------+-------+
 | ID      | int(11)      | NO   | PRI | NULL    |       |
 | NAME    | varchar(255) | YES  |     | NULL    |       |
 | SPECIES | varchar(255) | YES  |     | NULL    |       |
 +---------+--------------+------+-----+---------+-------+

 ANIMALS
 +----+---------+-------------+
 | ID | NAME    | SPECIES     |
 +----+---------+-------------+
 |  1 | Lion    | Carnivorous |
 |  2 | Giraffe | Herbivores  |
 |  3 | Zebra   | Herbivores  |
 |  4 | Trutle  | Herbivores  |
 |  5 | Tiger   | Carnivorous |
 |  6 | Bear    | Carnivorous |
 +----+---------+-------------+
有了它,我定义了视图
DUPLICATED

 CREATE VIEW DUPLICATED AS
     SELECT * FROM ANIMALS
     UNION ALL
     SELECT * FROM ANIMALS WHERE SPECIES = "Carnivorous";
(复制集合中的所有食肉动物)


现在我想了解
SELECT*FROM ANIMALS
DUPLICATED
之间的区别,或者反之亦然,基本上,从
ANIMALS
获取所有食肉动物,基本上,您可以通过任何字段组合进行分组,以确保结果中记录的唯一性。您还没有提供查询或表的模式,因此我将尝试使用一个通用示例来演示这一点。你可以理解我的意思,把它应用到你的问题上

SELECT field1, field2, field3 COUNT(*)
FROM MyTable
GROUP BY field1, field2, field3
HAVING COUNT(*) > 1

请把你自己的代码放在更好的位置
SELECT field1, field2, field3 COUNT(*)
FROM MyTable
GROUP BY field1, field2, field3
HAVING COUNT(*) > 1