You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL查询重复数据时如何排除反向匹配结果?

解决SQL重复数据匹配中的反向结果问题

要避免出现双向匹配的重复结果,只需要在连接条件里把ae.ID!=ae_match.ID替换成单向的ID比较,强制每对匹配只保留一次即可。

修改后的查询语句:

select ae.id, ae_match.ID matched_ID
from account_email ae
join account_email ae_match on ae.email=ae_match.email and ae.ID < ae_match.ID

原理说明

通过限定ae.ID < ae_match.ID,每一组拥有相同邮箱的ID对,只会按照ID从小到大的顺序出现一次。比如示例中的001: Geoff和999: Geoff,只会返回001对应999的结果,不会再出现反向的999对应001。如果你的ID是字符串类型(如示例中的带前导零的ID),只要字符串的排序规则符合你的预期,这个逻辑同样生效。

如果需要保留ID较大的在前的配对,只需要把<改成>即可。

内容的提问来源于stack exchange,提问作者Geoff Garcia

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 05:14:53