繁体   English   中英

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

[英]SQL Left Join not returning first match

我有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 32, 1, 'Bits'是否排除在外,因为它与正确的表数据匹配,还是有可能让SQL返回所有数据?

上面的SQL被精简到最低限度,因此我可以对其进行调试。 “原始”还具有WHERE语句。 如果我可以使以上各项起作用,我相信我也可以使原件起作用。 :-)

我希望有人可以指引我正确的方向。

提前致谢。

检查Left join相交 ,如果您的左表在右表上没有匹配项,它将切掉该部分,将其替换为FULL JOIN ,我认为会得到您想要的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM