如何使用 SQL 查询去除 LEFT JOIN 中产生的重复记录?

如何使用 sql 查询去除 left join 中产生的重复记录?

sql 查询去除重复记录

您正在处理两张表,a 表和 b 表,试图根据 a 表的数据查询不重复的结果。目前,您的查询使用了 left join,但在跟踪号不同时,它会导致重复的记录。为了解决这个问题,您可以使用以下查询:

select *from aleft join (  select sid, max(tracking_number)  from b  group by sid) bon a.sid = b.sid

登录后复制

这个查询使用 max() 函数找出每个 sid 对应的最大跟踪号。对于某些数据库,例如 sqlite 和较新版本的 mysql,您可能不需要使用该函数,而只需要在子查询中选择跟踪号即可。

如果您需要使用该函数,并且您的数据库不支持它,则可以使用以下查询:

select    a.*,    b.tracking_number,    b.is_cancel from aleft join (    select max(id) id, sid    from b    group by sid) x on a.sid = x.sidleft join b on x.id = b.id

登录后复制

这个查询使用 max(id) 找出具有最大 id 的记录的 id。然后,它使用该 id 从 b 表中选择其他信息。

以上就是如何使用 SQL 查询去除 LEFT JOIN 中产生的重复记录?的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/1440750.html

(0)
上一篇 2025年2月18日 00:45:50
下一篇 2025年2月18日 00:46:03

AD推荐 黄金广告位招租... 更多推荐

相关推荐

发表回复

登录后才能评论