2016-10-13 4 views
0

に参加:オラクルの外側には、私はこのようになりますクエリ持っ構文

select * 
from find fsc, 
     let lf, 
     cust cus, 
     STRIKE ist 
WHERE fsc.id = lf.id 
AND  ist.ID_old = fsc.ID_old 
AND  lf.cust_id = cus.cust_id(+) 

を私は知っている(+)参加のための古い構文ですが、私はそれが実際にこのクエリに何をしているのかわかりません。誰かがこれを説明し、より現代的な結合構文を使用してwhereステートメントに(+)を付けずにこのクエリを表示できますか?

+0

'(+)'は 'OUTER JOIN'または' LEFT JOIN'の古い構文です。マスターテーブル(プラス記号なしのもの)と詳細テーブル(プラス記号付きのもの)のすべてのレコードを保持します – sagi

+0

ありがとう!多くを助けた – SJR59

答えて

1

は、私はあなたがこれをしたいと考えている:

select * 
from find fsc join 
    let lf 
    on fsc.id = lf.id join 
    STRIKE ist 
    on ist.ID_old = fsc.ID_old left join 
    cust cus 
    on lf.cust_id = cus.cust_id; 

は正直に言うと、外部結合、おそらく必要はありません。 lfにはcust_idが有効ではないのはなぜですか?値がNULLの場合、妥当な唯一の可能性があります。

+0

ありがとう!多くの助けをした – SJR59

関連する問題