SQL联表查询LEFT JOIN 数据去重复

这篇具有很好参考价值的文章主要介绍了SQL联表查询LEFT JOIN 数据去重复。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

使用left join联表查询时,如果table1中的一条记录对应了table2的多条记录,则会重复查出id相同的多条记录。

SELECT t1.*
FROM table1 t1
LEFT JOIN table2 t2 ON t1.id = t2.tid

解决方法:

将查询结果作为中间表,使用group by 进行去重

SELECT tmp.* FROM (
SELECT t1.*
FROM table1 t1
LEFT JOIN table2 t2 ON t1.id = t2.tid
) tmp group by tmp.id

如果想对group by后的数据计算count,可以将查询结果作为中间表再计算count文章来源地址https://www.toymoban.com/news/detail-504270.html

SELECT COUNT(1) FROM (
SELECT tmp.* FROM (
SELECT t1.*
FROM table1 t1
LEFT JOIN table2 t2 ON t1.id = t2.tid
) tmp group by tmp.id
) tmp2

到了这里,关于SQL联表查询LEFT JOIN 数据去重复的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MySQL多表查询内连接外连接详解,join、left join、right join、full join的使用

    目录 1、多表查询概览 1.1、分类 1.2、外连接的分类 1.3、常用的SQL语法标准 2、内外联接案例 2.1、初始化表 2.2、内连接 2.3、外连接案例 2.4、全连接案例 2.5、union和union all 2.6、实现MySQL全连接 2.7、内外连接面试基础 2.8、SQL99多表查询新特性 1.1、分类 可以根据3个角度进行分类

    2024年02月05日
    浏览(65)
  • sql Left Join 关联多条数据情况下只取一条数据

    存在b表中foreign_key多条关联a表中的id 需要只取b表中的一条数据(例如取最新的时间的一条) 1.解决方式:使用ROW_NUMBER () over()新增一列编号,排序后对新增列进行筛选 2.解决方式:使用listagg函数多列转一行,再结合substr函数截取最后一条

    2024年02月06日
    浏览(45)
  • 关于Mysql使用left join写查询语句执行很慢的问题解决

    目录 (一)前言 (二)正文 1. 表结构/索引展示 (1)表结构 (2)各表索引情况 2. 存在性能问题的SQL语句 3. 解决思路 (1)执行计划思路调优 (2)字符集匹配调优 (三)总结 1. 关于执行计划中TYPE的性能比较 2. 关于left join优化 3. 其他注意点 这几天供应商在测试环境上使

    2024年02月02日
    浏览(49)
  • 【SQL开发实战技巧】系列(三十五):数仓报表场景☞根据条件返回不同列的数据以及Left /Full Join注意事项

    【SQL开发实战技巧】系列(一):关于SQL不得不说的那些事 【SQL开发实战技巧】系列(二):简单单表查询 【SQL开发实战技巧】系列(三):SQL排序的那些事 【SQL开发实战技巧】系列(四):从执行计划讨论UNION ALL与空字符串UNION与OR的使用注意事项 【SQL开发实战技巧】系列

    2023年04月12日
    浏览(64)
  • SQL中的——左连接(Left join)、右连接(Right join)、内连接(Inner join)

    最近有一个开发需求,需要实现一个复杂年度报表,前后端都是博主开发,这里的业务逻辑比较复杂,也很锻炼sql能力,这里博主也将表的内外连接做了一个整理分享给大家 首先还是介绍一下这三个的定义 1.Left join:即 左连接 ,是以左表为基础,根据ON后给出的两表的条件

    2024年02月12日
    浏览(47)
  • 工作的记录 left join on and 和 inner join on and的多条件查询区别

    eElasticsearch使用——结合MybatisPlus使用ES es和MySQL数据一致性 结合RabbitMQ实现解耦-CSDN博客 关于相对定位与绝对定位的区别_相对定位和绝对定位的区别-CSDN博客 display:flex(弹性盒子布局)详解_display: flex-CSDN博客 justify-content - CSS:层叠样式表 | MDN (mozilla.org) align-items - CSS:层叠样式

    2024年02月10日
    浏览(47)
  • SQL 语句中 left join 后用 on 还是 where,区别大了!

    目录 情况 小结 举例         前天写SQL时本想通过 A left B join on and 后面的条件来使查出的两条记录变成一条,奈何发现还是有两条。         后来发现 join on and 不会过滤结果记录条数,只会根据and后的条件是否显示 B表的记录,A表的记录一定会显示。         不

    2024年02月14日
    浏览(38)
  • MybatisPlus使用Left Join...on...一对多多表联查和Ipage分页返回数据问题

    问题: 一对多关系表使用MybatisPlus的Ipage进行分页查询,会先执行联表查询sql语句,然后进行分页。  像图中联表查询一对多关系,会有多条重复数据,使用Ipage分页会将这10条数据返回到xml中resultMap绑定的type。造成一页展示的数据少于10条。 针对这种我们采用子查询的方式解

    2024年02月13日
    浏览(39)
  • QueryWrapper构建复杂的SQL-循环添加条件、联表查询

    QueryWrapper是MyBatis-Plus提供的一个查询构建器,用于构建复杂的SQL查询语句。QueryWrapper可以用于添加条件、排序、分页等操作。 循环添加条件 在QueryWrapper中,可以使用andWhere和orWhere方法来添加多个条件,从而实现循环添加条件。 下面是一个示例代码,演示如何使用QueryWrapper循

    2024年02月16日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包