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