私は複雑なselect文を作成しています。自分の値(pcf_auto_key)の1つがnullの場合、そのヘッダエントリの値はすべて破棄されません。値がNULLの場合にSQL選択結果が表示されない
select c.company_name, h.prj_number, h.description, s.status_code, h.header_notes, h.cm_udf_001, h.cm_udf_002, h.cm_udf_008, l.classification_code
from project_header h, companies c, project_status s, project_classification l
where exists
(select company_name from companies where h.cmp_auto_key = c.cmp_auto_key)
and exists
(select status_code from project_status s where s.pjs_auto_key = h.pjs_auto_key)
and exists
(select classification_code from project_classification where h.pcf_auto_key = l.pcf_auto_key)
and pjm_auto_key = 11
--and pjt_auto_key = 10
and c.cmp_auto_key = h.cmp_auto_key
and h.pjs_auto_key = s.pjs_auto_key
and l.pcf_auto_key = h.pcf_auto_key
and s.status_type = 'O'
私の選択ステートメントはどのように見えるのですか?これは他のテーブルから情報を引き出す適切な方法ですか?
これはOracleデータベースであり、SQL Developerを使用しています。
Oracleがnullを処理する方法(特に比較条件を参照)(https://docs.oracle.com/cd/E11882_01/server.112/e41084/sql_elements005.htm#SQLRF30037)を参照してください。また明示的な 'join'構文の使用を検討する必要があります。これにより、ここで必要となる外部結合を簡単に使用できるようになります。表の構造、サンプルデータ、期待される結果が参考になります。 'exists'節は何をしようとしていますか?あなたは既に(暗黙の)ジョイン条件を持っていますか? –
ジョイントマン!!! WHERE句に加えて。あなたがトップ・リザルト・セットを望むことを理解しているものから、インナー・ジョイントと全く同じ他の値が存在する場合のみ –
ありがとう。私は結合を使用する必要があるように見えます。 – StephenP