私は、Oracle SQLで次のコード行がありますこの行のコードをWHERE句に変更するにはどうすればよいですか?
LEFT OUTER JOIN lrmi_dba.rte_session_info si
ON si.rte_session_id
WHERE si.rte_session_id = TO_CHAR(USERENV('SESSIONID'))
これは動作しません:
LEFT OUTER JOIN lrmi_dba.rte_session_info si
ON si.rte_session_id = TO_CHAR(USERENV('SESSIONID'))
を私はWHERE句、のようなものにコードのこの部分を変更したいと思います。誰もこれを行う方法を知っていますか?
ありがとうございました!
あなたが使用することができます: "LEFT OUTERは1 = 1 WHERE si.rte_session_id = TO_CHAR(USERENV( 'SESSIONID'))ON lrmi_dba.rte_session_info SIを登録しよう"。しかし、なぜ? –
'ON'句で書くフィルタ条件は、左側のテーブルから' ALL'の結果をとり、 'session_id'で渡された' lrmi_dba.rte_session_info'テーブルの結果と一致するものだけを返します。しかし、条件をwhere句に移動したい場合は、まず、 'rte_session_id'が等しいテーブルからすべての結果を取得し、最後にsession_idに渡された結果だけを取得することを意味します。要するに、 – Deepshikha
つまり、これらのクエリは 'NULL'のために異なっています。効果的に 'LEFT OUTER JOIN lrmi_dba.rte_session_info si .. WHERE si.rte_session_id = ..'はINNER JOINです。 – Serg