Mysql Left加入Force Group By

时间:2016-02-09 00:29:07

标签: mysql database

我注意到当我使用左连接到另一个表时,我的数据会复制自己,并且我没有比创建组更多的选项,以便我可以拥有正确的行。

SELECT * from tbla a left join tblb b on a.id=b.id_a
group by a.id

有没有办法让左连接返回没有重复的正确行?

1 个答案:

答案 0 :(得分:0)

取决于您的数据,您可能在tablea上有重复的ID,因此您正在创建重复项。

在不知道您的数据的情况下,您有两个选择

SELECT *
FROM 
     (
      SELECT DISTINCT <tablA_fields> 
      from tbla a 
     ) as A
left join      (
      SELECT DISTINCT <tablB_fields> 
      from tblb b
     ) as B
tblb b on A.id = B.id_a

第二个选项使用group by代替每个子选择。