聊城企业网站建设,丹东商城网站建设,昆明排名优化,小波app推广网我们在使用left join联表查询时#xff0c;如果table1中的一条记录对应了table2的多条记录#xff0c;则会重复查出id相同的多条记录。
1、解决方法一
SELECT t1.*
FROM table1 t1
LEFT JOIN table2 t2 ON t1.id t2.tid 第一种方法我们发现还是有重复数据
2、解决方法二… 我们在使用left join联表查询时如果table1中的一条记录对应了table2的多条记录则会重复查出id相同的多条记录。
1、解决方法一
SELECT t1.*
FROM table1 t1
LEFT JOIN table2 t2 ON t1.id t2.tid 第一种方法我们发现还是有重复数据
2、解决方法二
SELECT tmp.id, max(tmp.name) FROM (
SELECT t1.*
FROM table1 t1
LEFT JOIN table2 t2 ON t1.id t2.tid
) tmp group by tmp.id 3、解决方法三
SELECT distinct tmp.id, tmp.name FROM (
SELECT t1.*
FROM table1 t1
LEFT JOIN table2 t2 ON t1.id t2.tid
) tmp 4、其他补充 我们需要查询重复的行的总行数可以进行如下操作
SELECT tmp.id, count(tmp.name) as count FROM (
SELECT t1.*
FROM table1 t1
LEFT JOIN table2 t2 ON t1.id t2.tid
) tmp group by tmp.id order by id asc