-3

メインテーブル

ID Column1         TableA.fK TableB.fk
1  some-value        1          null
2  some-value        1          1
3  some-value        null       2

表A

TableA.pk  Column1
1          some-value

表B

TableB.pk Column1
1         some-value
2         some-value
Select  Main.ID,Main.Column1 ,A.Column1,B.Column1
FROM    MainTable main
LEFT JOIN
        Table A
ON      Main.TableA.fk = A.TableA.pk
LEFT JOIN
        TableB b
ON      Main.TableB.fk =B.TableB.fk
WHERE   Main.ID =1

意味

結果は

  ID  Column1     A.Column1  B.Column1
  1   some-value   some-value  null

出力を期待する

 ID    column1         A.Column1
 1     some-value     some-value  

B.column1 を表示しないでください


tableAの外部キー値がnullでない場合、 RDBMS Microsoft Sql Server 2008を使用してここで使用される上記のSELECTクエリの場合、TableAからすべての詳細を取得する必要があります

4

3 に答える 3

0

ここの問題がわかりません。を表示したくない場合はB.Column1、ステートメントB.Column1から削除してください。Select

あなたは今持っています

Main.ID、A.Column1、B.Column1 を選択

に変更します

Main.ID、A.Column1 を選択

Coalesce以下のコメントに基づいて、使用している DBMS に応じて、またはを探しているようですIsNull(質問でも教えてくれませんでした)。

このようなものが動作するはずです:

SELECT  
  Main.ID, Coalesce(A.Column1, B.Column1) as Column1
FROM    
  MainTable main
LEFT JOIN
  Table A
ON      
  Main.TableA.fk = A.TableA.pk
LEFT JOIN
  TableB b
ON
  Main.TableB.fk = B.TableB.fk
WHERE   
  Main.ID = 1
于 2013-03-29T14:21:05.037 に答える
0

SELECTこの列をリストに入れないでください:

SELECT  Main.ID, A.Column1
FROM    MainTable main
LEFT JOIN
        Table A
ON      Main.TableA.fk = A.TableA.pk
LEFT JOIN
        TableB b
ON      Main.TableB.fk = B.TableB.fk
WHERE   Main.ID = 1
于 2013-03-29T14:21:11.147 に答える
0

クエリから B.Column1 を削除します

Select Main.ID,A.Column1 FROM MainTable main LEFT JOIN Table A ON Main.TableA.fk=A.TableA.pk LEFT JOIN TableB b ON Main.TableB.fk =B.TableB.fk WHERE Main.ID =1
于 2013-03-29T14:21:16.710 に答える