SQL Left Join不返回第一个匹配项

时间:2016-11-28 21:09:09

标签: mysql sql

我有2个表,我想在左表中返回所有数据,在右表中返回匹配数据。

问题是,左侧返回的数据不包括与右侧匹配的行。

左表:

b_kategori

id, kat, navn
32, 1, 'Bits'
33, 2, 'Donkrafte'
34, 3,'Dornsæt'
35, 4, 'Hammere'

b_underkategori

id, kat, navn
26, 1, 'Skrueudtrækkertoppe'
27, 1, 'WIHA Bits'

SQL看起来像这样:

SELECT k.kat, k.navn as navnet, u.navn as unavn FROM b_kategori k LEFT OUTER JOIN b_underkategori u ON k.kat = u.kat 

我希望SQL返回左边的所有行(b_kategori)以及右边的所有行(b_underkategori),但是我错过了b_kategori 32, 1, 'Bits'这是否被排除,因为它匹配正确的表数据,或者是否可以让SQL返回所有数据?

上面的SQL被剥离到最小,所以我可以调试它。 "原创"还有一个WHERE语句。如果我能够完成上述工作,我相信我也可以让原件工作。 : - )

我希望有人能引导我朝着正确的方向前进。

提前致谢。

1 个答案:

答案 0 :(得分:0)

检查Left join intersection,如果你的左表在右表上没有匹配,它会切掉那部分,用FULL JOIN替换它,我认为它会得到你想要的。