2011-03-05 85 views
0

我加盟,其中有兩個獨立的關係計劃看起來像這樣的表:我需要在列NULL值,如果中間表不適用

TableA1 -> TableA2  -> TableB  -> TableC : <<< RELATIONSHIP A 
enter code here 

和輸出需要看起來像這樣:

A1columnId A2columnId BcolumnId CcolumnId 
    1   1   1   1 
    2   null  2   2 
    3   null  3   3 
    4   2   4   4 
    5   null  5   5 

如果存在這兩種關係的& B,我要看看A2colId爲空下面的關係:

而第二關係方案長相像這樣: TableA1->表B-表C < < < <關係B(該方案沒有關於TableA2線索)

你會怎麼做的加入得到的結果與零點在A2ColumnId設置如上所描繪?

+0

不知道我編輯過程中發生了什麼,但保留之前的狀態,突出顯示整個事件,然後單擊{}按鈕使其看起來不錯。 – rayman86 2011-03-05 03:15:07

回答

1

LEFT JOIN而不是常規連接會強制表加入,即使沒有數據存在於右表中,填充null在它的位置。所以,當你加入A1和A2,你會這麼做:

SELECT * 
    FROM A1 
     LEFT JOIN A2 
      ON A1.idlink = A2.idlink 
     JOIN B 
      ON A1.id = B.id 
     JOIN C 
      ON A1.id = C.id; 
+0

謝謝...我正在與這個wysiwydg編輯器戰鬥 – RetroCoder 2011-03-05 03:13:20

0
SELECT * 
FROM TableA A1 
    LEFT JOIN TableA A2 ON A1.ColumnId1 = A2.ColumnId2 
    INNER JOIN TableB B ON B.ColumnId IN (A1.ColumnId1, A2.ColumnId2) 
    INNER JOIN TableC C ON B.ColumnId = C.ColumnId 

如果我得到你的權利。

相關問題