MySQL基于关联列实现指定字段去重的查询方法
MySQL 同关联列维度下对目标列去重的实现
你的去重规则本质等价于对(关联列colA, 目标列colB)的二元组合做整体去重,无需编写复杂关联判断,有两种常用实现方式:
写法1:使用 DISTINCT 直接过滤
DISTINCT会对查询返回的所有字段做整行去重,刚好匹配“同一colA取值范围内重复的colB仅保留一条”的判定逻辑,是最简洁的实现:
SELECT DISTINCT colA, colB FROM 你的业务表名 ORDER BY colA, colB;
写法2:使用 GROUP BY 分组实现
如果需要适配MySQL严格SQL模式,或是后续要扩展自定义去重规则(比如保留重复行中特定条件的记录),可以通过分组实现:
SELECT colA, colB FROM 你的业务表名 GROUP BY colA, colB ORDER BY colA, colB;
输出效果
两种写法的返回结果与预期完全一致:
colA colB --------- a 1 a 2 a 3 b 1 b 2 b 4 c 1 c 2
内容的提问来源于stack exchange,提问作者ALFA
相关产品推荐
相关产品推荐

