2017-12-01 1 views
0

Ich bin mit einem Problem fest. Ich habe 3 Tabellen in meiner Oracle-Datenbank. Erste Tabelle enthält alle registrierten Mitarbeiter: ID, FNAME, LNAME Zweite Tabelle enthält alle Mitarbeiter (registriert + unregistriert): - ID, FNAME, LNAME Dritte Tabelle ist eine Master-Tabelle mit allen Details des Mitarbeiters zusammen mit Adresse. ID ist in allen 3 Tabellen üblich.Wählen Sie Negation einer Tabelle aus einem anderen zusammen mit Daten in der Master-Tabelle SQL-Abfrage für Oracle

Hier ist meine Anforderung, eine Abfrage zu schreiben, die alle nicht registrierten Mitarbeiter mit ihren Adressdetails anzeigt.

Einige IDs sind ebenfalls Null in allen Tabellen, die vernachlässigt werden müssen.

Tabelle 1 - Registrierte Nutzer Tabelle 2 - Registrierte + nicht registriert Tabelle 3 - Master-Tabelle, die

Anforderung enthält weitere Informationen: - Wählen Sie ID, Name, Adresse für nicht registrierte Nutzer.

Abfrage wird hilfreicher sein als Erklärung.

Danke,

+0

Hinweis: LEFT JOIN oder NICHT VORHANDEN. –

+0

Hey Raymond, Du schaust mal in die Anforderung und bitte lass mich die Abfrage wenn möglich kowen. Vielen Dank. –

Antwort

0

Ich denke not exists oder not in tut, was Sie wollen:

select m.* 
from masters m 
where not exists (select 1 
        from registered r 
        where r.id = m.id 
       ); 
+0

Okay, meine Anforderung ist, alle Mitarbeiter auszuwählen, die nicht registriert sind. AllEmployeeTable (Registriert + Unregistriert) minus RegisterdUser. Was mir alle nicht registrierten Benutzer geben wird. Jetzt muss ich für alle nicht registrierten Benutzer die Adresse aus der 3. Tabelle auswählen. –

Verwandte Themen