使用left join联表查询时,如果table1中的一条记录对应了table2的多条记录,则会重复查出id相同的多条记录。
SELECT t1.*
FROM table1 t1
LEFT JOIN table2 t2 ON t1.id = t2.tid
解决方法:
将查询结果作为中间表,使用group by 进行去重文章来源:https://www.toymoban.com/news/detail-504270.html
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模板网!