mysql - 根据 SQL 中的组过滤掉重复项

标签 mysql sql

我正在尝试过滤掉 color 列的重复项,但仅限于每组 parent_id,而不是整个颜色列本身。

例如,我有下表:

parent_id | child_id | color    |
5         | 1        | blue     |
5         | 2        | blue     |
5         | 3        | green    |
5         | 4        | green    |
5         | 5        | yellow   |
5         | 6        | orange   | 
6         | 7        | blue     |
6         | 8        | blue     |
6         | 9        | magenta  |
6         | 10       | green    |
6         | 11       | magenta  |
6         | 12       | orange   |

我正在寻找的结果是这样的:

parent_id | child_id | color    |
5         | 1        | blue     |
5         | 3        | green    |
5         | 5        | yellow   |
5         | 6        | orange   | 
6         | 7        | blue     |
6         | 9        | magenta  |
6         | 10       | green    |
6         | 12       | orange   |

请注意,parent_id = 5 只有一种蓝色,而 parent_id = 6 则只有一种蓝色。其余颜色也是如此。

非常感谢对此的任何帮助。

最佳答案

select parent_id, min(child_id), color
from your_tab
group by parent_id, color;

关于mysql - 根据 SQL 中的组过滤掉重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26981895/

相关文章:

php - 通过 laravel Mysql 使用 Distinct 和 group

java - SpringBoot数据库嵌入式数据库驱动JAVA异常

mysql - 即使初始选择失败,也可以从连接的第二个表中获取结果,反之亦然

html - MySQL - 从内容列内的 href 属性中存在的动态 url 中搜索并替换文本 (".html")

mysql - 如何根据与另一个表的关系从mysql表中获取结果

mysql - 统计学生人数并显示在另一个表中

mysql - 如何获取多个表的项目计数

sql - 如何获取 PostgreSQL 序列中的下一个数字

java - 是否可以使用 if else 条件 true 从一个表中获取另一个表?

sql - MySQL:通过 auto_increment 列的值检查新记录是否不好?