次のコードを実行すると、次のような結果が得られます。
ID column1 column2
34 NULL NULL
34 Org13 Org13
36 NULL NULL
36 NULL Org2
36 Org4 NULL
41 NULL NULL
41 NULL Org5
41 Org3 NULL
結果を次のようにしたい:
ID column1 column2
34 Org13 Org13
36 Org4 Org2
41 Org3 Org5
Table1 と Table2 の 2 つのテーブルがあります。Table2 は、次のフィールドを持つルックアップ テーブルです: id、name
Table1 には、次のフィールド (id、column1、column2) があります。column1 と column2 の両方に、ルックアップ テーブルへの外部キー リレーションシップがあります。
FK_1: Table1.column1-Table2.id
FK_2: Table1.column2-Table2.id
column1 と column2 の値を取り出したいので、これらの値は両方とも同じフィールド (Table2.name) のルックアップであるため、内部選択を行う必要があると思われます。
私のコードは以下です。これを変更して、私が得ている結果ではなく、望ましい結果を生成するにはどうすればよいですか? 前もって感謝します!
DECLARE @value INT
SET @value = 14
SELECT DISTINCT
Table1.[id] AS ID
, ( SELECT DISTINCT
Table2.[name]
WHERE
Table1.column1 =
Table2.id ) AS column1
, ( SELECT DISTINCT
Table2.[name]
WHERE
Table1.column2 =
Table2.id ) AS column2
FROM
Table1
,Table2
WHERE
Table1.[id] = @value