Abwesenheit von abgefragten Daten nur schlägt derzeit nicht vorhanden. Ein fehlender Eintrag ist jedoch, Daten, oder könnte vorhanden sein sollte , aber nicht ist. Zum Beispiel Kundendaten und Aufträge in Tabellen Customers und Orders befinden. Ein Kunde Liste angefordert wird, und du, der Programmierer , übernehmen hat jeder Kunde einen Auftrag . Die Kunden von Orders sollten die richtigen Kunden-Liste , aber nicht wahr? Listing Kunden von Kunden können Ertrag mehr , was einige Kunden fehlen Aufträge. Sie müssen prüfen, welche Kunden fehlen Aufträge und dann verstehen, wenn dieser Umstand ist von Entwurf oder ein Bug . Anleitung
1
Anzeige einzelnen Kunden in den KUNDEN Tisch. Zum Beispiel: SELECT DISTINCT
C.CUSTOMERIDFROM KUNDEN C
2
Anzeige verschiedene Kunden in Tabelle AUFTRAG . Zum Beispiel: SELECT DISTINCT
O.CUSTOMERIDFROM BESTELLUNGEN O
3
Bestimmen Sie Kunden mit fehlenden Aufträgen durch die Kombination von Schritt 1 und 2 in einer korrelierten Unterabfrage
< p . > SELECT DISTINCT C.CUSTOMERIDFROM KUNDEN CWHERE NOT EXISTS ( SELECT * FROM BESTELLUNGEN OWHERE O.CUSTOMERID = c.CustomerID )
EXISTS ist ein Oracle- Funktion, die Tests für die Existenz zurückgekehrt Unterabfrage Datensätze . Als Vorwort mit "NOT "-Tests auf die Abwesenheit von Datensätzen. Hier stimmt die Unterabfrage Kunden in beiden Tabellen . Spiele Ergebnisse zurück , die diejenigen abgestimmt CUSTOMERID von den wichtigsten Ergebnismenge ausschließen würde . Nur CUSTOMERID die ohne O.CUSTOMERID Spiel würde angezeigt werden.
4
Alternativ bestimmen fehlende Datensätze aus einer zusammengesetzten Ansicht Cusotmer und ORDER Tabellen .
SELECT DISTINCT C.CUSTOMERIDFROM KUNDEN C , Bestellungen OWHERE c.CustomerID = O.CUSTOMERID (+) und O.CUSTOMERID ist null
Wenn Sie die Order-Tabelle fehlen könnte Datensätze vermuten , dann versuchen Sie diese Abfrage c.CustomerID und O.CUSTOMERID Seite anzeigen by side . Das (+) ruft eine linke äußere Verknüpfung , die Oracle sagt , um alle passenden Daten aus der WHERE-Anweisung zuzüglich etwaiger c.CustomerID ' s aus der linken Tabelle, die keine passende O.CUSTOMERID haben ' s in der rechten Tabelle .
Zeigen < p> Wenn es c.CustomerID 's mit keine passenden O.CUSTOMERID ' s sind, werden sie mit Null-Werten für die nicht vorhandene O.CUSTOMERID ' s zeigen . Die Reihen mit solchen Nullen repräsentieren die fehlende Ordnung Aufzeichnungen .
Wenn die Liste zu lang für die visuelle Inspektion, die zweite WHERE-Anweisung sorgt die Ergebnisse c.CustomerID ' s mit fehlenden Aufträge sind begrenzt ist .