[英]SQL INNER JOIN with IF CONDITION
我有以下SQL語句
Select
a.A,
a.B,
b.C
FROM table a
INNER JOIN table b
on (a.A = b.A)
WHERE a.A = @A
我的問題是,當表b中沒有A匹配表a中的A時,將不會顯示所有的A,BC。 僅當存在一個滿足aA = bA的值時,它才起作用。即使不滿足aA = bA,我也如何獲得所有A,B和C。我試圖使用顯然不起作用的IF語句。
SELECT
a.A,
a.B,
b.C
FROM table_a a
LEFT JOIN table_b b
ON (a.A = b.A)
WHERE a.A = @A
當然,如果連接條件不匹配,您將無法從bC獲得任何信息,但是您將獲得表a中的所有行
如果您確實想要table_a和table_b中的所有行,請改用FULL OUTER JOIN。
使用LEFT JOIN將從左側表(此處為table_a)中獲取所有內容,如果右側表(此處為table_b)中存在匹配記錄(由JOIN條件指示),則將返回該表中的數據。 如果右表中沒有與左表中的記錄相對應的記錄,則將為您從右表中選擇的那個/那些列返回NULL。
SELECT
a.A,
a.B,
ISNULL(b.C, 'No Match In table_b')
FROM table_a a
LEFT JOIN table_b b
ON (a.A = b.A)
WHERE a.A = @A
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.