私はネストされた選択を使用しようとしていて、患者の姓の患者の姓とそのメールを含む行を表示しようとしています。Oracle 11gでネストされた選択クエリを使用
select pat_first, pat_last, pat_email
from (select pat_id
from patients
minus
select pat_allergies_id_fk
from patient_allergies);
患者テーブルがpat_idたしかし、pat_first、pat_last、およびpat_email:
は、私が使用したいのはこれです。 Patient_allergiesテーブルには、patient_allergies_id_fkとpatient_allergiesカラムしかありません。私は次のように内側の選択の最初に私が欲しいのテーブルを置く場合:
select pat_first, pat_last, pat_email
from (select pat_id, pat_first, pat_last, pat_email
from patients
minus
select pat_allergies_id_fk
from patient_allergies);
が、それは誤りなります - 「ORA-01789を:問合せブロックは、結果の列の数が間違ってい」。私は5列のテーブルからマイナスを行い、2列のテーブルを減算しようとしているからだと思っていますが、希望の列を表示するためのクエリをどのように得ることができるかわかりません(pat_first、pat_last、pat_email )。
たとえば、patientテーブルには50行があり、patient_allergiesテーブルには15があります。これらの35行をpatient_allergiesに入れずに、pat_first、pat_last、pat_emailの各行を出力しようとしています。
すごいです!それはうまくいきました。私は機能していないことを認識していませんでした(私はSQLの初心者です)。 – user2444400