mysql数据库多表联合查询去重

在mysql中,当一个表进行多表联合查询特别是与它本身进行自表联合查询的时候,会出现重复记录,使用distinct语法无法去重.因为distinct语句中,仅能返回distinct指定的字段,其他字段无法获取.

select distinct name from A    仅能返回name字段
select distinct name, id from A   实际上是根据“name+id”来去重,distinct同时作用在了name和id上

经过百度和项目里的测试 发现下面的办法最为有效

select *, count(distinct name) from table group by name

最后一项是多余的count值,并注意group by 必须放在 order by 和 limit之前。

发表评论

电子邮件地址不会被公开。 必填项已用*标注