簡體   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