Ich versuche, eine geschachtelte auswählen und Zeilen mit einem Patienten Vorname Nachname und ihre E-Mail anzeigen.Verwenden einer geschachtelten Select-Abfrage in Oracle 11g
Was ich verwenden möchte, ist dies:
select pat_first, pat_last, pat_email
from (select pat_id
from patients
minus
select pat_allergies_id_fk
from patient_allergies);
jedoch die Patienten Tabelle hat pat_id, pat_first, pat_last und pat_email. Die Tabelle Patient_allergies hat nur die Spalten patient_allergies_id_fk und patient_allergies. Wenn ich legte die Tafeln, die ich in der ersten wie der inneren wählt wollen:
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);
aber es gibt einen Fehler - „ORA-01789: Abfrageblock falsche Anzahl der Ergebnisspalten hat“. Ich denke, ich versuche, ein Minus aus einer Tabelle mit 5 Spalten zu machen und eine Tabelle aus zwei Spalten zu subtrahieren, aber ich bin mir nicht sicher, wie ich die Abfrage dazu bringen kann, meine gewünschten Spalten anzuzeigen (pat_first, pat_last und pat_email)).
Zum Beispiel hat die Patiententabelle 50 Zeilen, und die patient_allergies Tabelle hat 15, ich versuche diese 35 Zeilen nicht in patient_allergies zu bekommen und lasse die pat_first-, pat_last- und pat_email-Zeilen ausgeben.
Awesome! Das hat funktioniert, danke! Ich war mir nicht bewusst, dass das nicht in Funktion ist (da ich ein Neuling bei SQL bin). – user2444400