2011-03-05 40 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 

如果我得到你的权利。

相关问题