2011-01-18 15 views
2

次のように私は6つのテーブルを持っている、選択データも存在する場合つのテーブル内のデータなし

表1、 表2、 表3、 表4、 テーブル5 、 テーブル-6

すべてのテーブルには同じプライマリキーがあります。

これらのすべての基本表からビューを作成したいとします。

selectクエリのwhere条件は、最初の5つのテーブルの主キーを修飾する必要があります。

要件は、これは、

1.ビュー第6表の最初の5つのテーブルを加えたデータからデータをフェッチするべきです。 2. 6番目のテーブルにデータがない場合、ビューは5つのテーブルにデータを表示する必要があります。

私はすべてのテーブルのプライマリキーを修飾することができますが、私がした場合、ビューは表示されません 6番目のテーブルにデータがない場合は、その必要はありません。

私は今何をしていますか?

答えて

6
SELECT * 
FROM table1 t1 
JOIN table2 t2 
ON  t2.t1_id = t2.id 
… 
LEFT JOIN 
     table6 t6 
ON  t6.t5_id = t5.id 
2
Select t1.*, -- put here columns you need 
     t2.*, 
     t3.*, 
     t4.*, 
     t5.*, 
     t6.* 
    From table1 t1 
     Join table2 t2 On t1.pfield = t2.pkfield 
     Join table3 t3 On t1.pfield = t3.pkfield 
     Join table4 t4 On t1.pfield = t4.pkfield 
     Join table5 t5 On t1.pfield = t5.pkfield 
    Left Join table6 t6 On t1.pfield = t6.pkfield 
1

外部ジョインを参照していますか?

次のようなものはありますか?

where 
    t1.id = t2.id and 
    t2.id = T3.id and 
    ... 
    t5.id = t6.id (+) 
+0

「ANSI」結合は、約10年前にリリースされた '9i'から利用できます。 – Quassnoi

関連する問題