Oracleである3つのテーブルを結合させたいと思っております。
テーブルA
CD_A *
CD_B *
CD_C *
CD_D
テーブルB
CD_A *
CD_B *
CD_D *
CD_E
テーブルC
CD_A *
CD_B *
CD_F *
CD_E
つまり、テーブルAを起点としまして、テーブルB、テーブルCが、結合されているという状態です。
この場合、
テーブルA -> テーブルB -> テーブルC
と結合したい場合、
sql
1SELECT * from テーブルA a 2left join テーブルB b on (a.CD_A = b.CD_A and a.CD_B = b.CD_B and a.CD_D = b.CD_D) 3left join テーブルC c on (b.CD_A = c.CD_A and b.CD_B = c.CD_B and b.CD_E = c.CD_E)
と書くか、
sql
1select * from テーブルA a,テーブルB b,テーブルC c 2where (a.CD_A = b.CD_A and a.CD_B = b.CD_B and a.CD_D = b.CD_D) and (b.CD_A = c.CD_A and b.CD_B = c.CD_B and b.CD_E = c.CD_E)
で何か違いはあるものなのでしょうか?
それとも、これは書き方の違いだけで、パフォーマンス的な事や、結果には違いは無いものなのでしょうか?
回答1件
あなたの回答
tips
プレビュー