PHP SQL: Passende Daten zwischen zwei Tabellen entsprechen, ohne Ausfilterung Daten in der 1. Tabelle
-
03-10-2019 - |
Frage
Ich habe 2 Tabellen. Für simplicities willen ‚u‘ hat die folgenden Spalten
userid
divisionid
'd' hat die folgenden:
divisionid
Name
Ich habe nicht diese Tabelle erstellen, sonst würde ich dieses Problem nicht. u.DIVISION können NULL sein. d.DIVISION kann nicht .
die folgenden Lauf erstellt die entsprechenden Daten, aber es filtert auch jede einzelne Benutzer-ID aus, die NULL für seine divisionid hat. Gibt es trotzdem noch alle zeigen die Benutzer-ID ist unabhängig von ihrer divisionid und wenn die divisionid nicht null ist, dann zeigt den Namen der Abteilung?
"SELECT Benutzer-ID, d.NAME
VON u, d
WO u.divisionid = d.divisionid
ORDER BY userid "
Lösung
Verwenden Sie eine äußere Verknüpfung:
SELECT userid, d.NAME
FROM u
LEFT OUTER JOIN division d
ON u.divisionid = d.divisionid
ORDER BY userid
Andere Tipps
Mit dem Oracle oder implizierte Join-Syntax eines INNER JOIN
impliziert. Eine innere Verknüpfung eliminiert Datensätze, die nicht erfüllen die Kriterien.
Eine explizite Join mit der JOIN
Klausel können Sie die Join-Typ angegeben werden.
Ein LEFT OUTER JOIN
hält alle Zeilen in der ersten Tabelle, unabhängig davon, ob es passende Zeilen in der zweiten Tabelle.
SELECT userid, d.NAME
FROM u
LEFT OUTER JOIN division d
ON d.divisionid = u.divisionid
ORDER BY userid