私は4つのテーブルを持っており、キーが正しいエントリにマップされる最も効率的な方法でテーブルを返したいと思います。
表Aの列:
[ SVC_PREFIX | SVC_CD | ... ]
表Bの列:
[ SVC_PREFIX | SVC_CD | SVC_ID |... ]
表Cの列:
[ SVC_ID | ... ]
表Dの列:
[ SVC_ID | ... ]
テーブルAは、SVC_PREFIXおよびSVC_CDによってテーブルBにマップされます。テーブルBは、SVC_IDを介してテーブルCおよびDを取得する役割を果たします。テーブルDの列がCよりも少ないことを除いて、テーブルCおよびDはほぼ同じです。 isSillyですが、DにはisSillyしかありません。DがisSillyのNULL値でプルされ、Cが対応するデータを取得するように、エントリを取得することは可能ですか?
次に例を示します。表Aの列:
[ SVC_PREFIX | SVC_CD | anotherData ]
[ 111 | 123 | AAA ]
表Bの列:
[ SVC_PREFIX | SVC_CD | SVC_ID ]
[ 111 | 123 | 007]
表Cの列:
[ SVC_ID | isGood | isHappy ]
[ 007 | Y | Y ]
表Dの列:
[ SVC_ID | isGood ]
[ 007 | Y ]
取得したいデータ:
[ SVC_PREFIX | SVC_CD | anotherData | SVC_ID | isGood | isHappy ]
実際のデータ
[ 111 | 123 | AAA | 007 | Y | Y ]
[ 111 | 123 | AAA | 007 | Y | NULL ]
CとDの両方のテーブルを別々の行として表示したいと思います。
現在、暗黙の結合がありますが、希望する結果が得られません...
SELECT *
FROM A,B,C,D
WHERE A.SVC_PREFIX = B.SVC_PREFIX
AND A.SVC_CD = B.SVC_CD
AND B.SVC_ID = C.SVC_ID
AND B.SVC_ID = D.SVC_ID
AND C.SVC_ID = D.SVC_ID
助けてくれてありがとう!