我注意到,当我使用左联接到另一个表时,我的数据会重复,并且我没有比分组依据更多的选择,这样我才能拥有正确的行。

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


有没有一种方法可以使左联接返回没有重复的正确行?

最佳答案

根据您的数据,您可能在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代替。

10-04 11:27
查看更多