PHP SQL: Passende Daten zwischen zwei Tabellen entsprechen, ohne Ausfilterung Daten in der 1. Tabelle

StackOverflow https://stackoverflow.com/questions/2875835

  •  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 "

War es hilfreich?

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
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top