oracleの外部結合表現(+)からleft joinへの書き換えがうまくいきません
現在oracleで使用しているsql文をsqlserverで使えるように書式を変更しています。
そこで、以下のようなsql文について、書き換えを試みているのですが、
select結果が同じになりません。
(+)を利用したsql文の挙動が理解できておらず、
申し訳ありませんがご教示いただきたいです。
書き換え元--oracle--
SELECT
A.id,
A.name,
B.address,
C.tel1,
C.tel2,
D.sex
FROM TBL_A A,TBL_B B,TBL_C C,TBL_D D
WHERE
A.id = '000001',
A.id = D.id,
A.id = B.id(+),
A.id = C.id(+),
B.address = C.address(+),
B.customer_name = D.customer_name(+)
上記のように内部結合して、
複数テーブルで(+)を用いた外部結合をするsqlを
left joinを使用したsqlに書き換えたいのですが、
select結果が異なってしまいます。
どのように書き換えるのが正解なのか教えていただきたいです。
以下のような単純な書き換えは理解できるのですが、
複数(内部結合と外部結合の組み合わせ)が全く分からず。。
(+)での外部結合
SELECT
A.id,
B.address
FROM TBL_A A,TBL_B B
A.id = B.id(+)
left join 書き換え
SELECT
A.id,
B.address
FROM TBL_A A
LEFT JOIN TBL_B B
ON A.id = B.id
以上、お分かりになる方がいらっしゃいましたらご教示ください。
また、不足している・分かりにくい点がありましたら
ご指摘ください。修正させていただきます。
宜しくお願い致します。