Heim  >  Fragen und Antworten  >  Hauptteil

SQL-Linksverknüpfung mit Where-Klausel zum Filtern leerer Felder

<p>Ich habe zwei Tabellen, eine ist die Benutzertabelle und die andere ist die Token-Tabelle. Ich möchte diese beiden Tabellen zusammenführen, um zu sehen, welche Benutzer ihre Token überprüft haben und welche nicht. In der Token-Tabelle gibt es einen Fremdschlüssel, der die Benutzer-ID enthält. </p> <p>Jetzt verwende ich einen Left-Join, um die Benutzer-IDs zu verknüpfen, und versuche zu überprüfen, ob keine Validierung erfolgt. Die Abfrageanweisung lautet wie folgt: </p> <pre class="brush:php;toolbar:false;">SELECT name, verifiziert VON Benutzern LEFT JOIN-Token ON user.ID = tokens.UID WHERE verifiziert = false</pre> <p>Angenommen, ich habe die folgenden zwei Tabellen:</p> <pre class="brush:php;toolbar:false;">ID-Name | 0 |. Joe 1 |. Sally 2 |. Dave 3 |. John</pre> <p>Dann sieht die Token-Tabelle wie folgt aus: </p> <pre class="brush:php;toolbar:false;">ID | 0 |. 1 |. 0 1 |. 2 |. 0 2 |. 3 |. 1</pre> <p>Wie Sie sehen können, hat Joe keine Datensätze in der zweiten Tabelle. Ich möchte diese beiden Tabellen verbinden und selbst wenn Joe keinen Datensatz in der zweiten Tabelle hat, möchte ich, dass dieser als falsch/null behandelt wird. Wenn ich die Abfrage ausführe, um nicht authentifizierte Benutzer zu finden, werden nur zwei Dateneinträge zurückgegeben. </p> <pre class="brush:php;toolbar:false;">Name | Sally |. 0 Dave |. 0</pre> <p>Wenn ich die where-Klausel entferne, sieht das Ergebnis wie folgt aus: </p> <pre class="brush:php;toolbar:false;">Name | Sally |. 0 Dave |. 0 Johannes |. 1 Joe |. NULL</pre> <p>Wie Sie sehen können, hat Joe unten einen Nullwert, aber ich möchte, dass er als nicht validiert behandelt wird. Wie soll ich eine Abfrage schreiben, um die folgenden Daten zu erhalten: </p> <pre class="brush:php;toolbar:false;">Name | Sally |. 0 Dave |. 0 Joe |. NULL</pre> <p>Oder einfach die folgende Abfrageanweisung, das Ergebnis ist 3. Das aktuelle Abfrageergebnis ist 2. </p> <pre class="brush:php;toolbar:false;">SELECT count(*) VON Benutzern LEFT JOIN-Token ON user.ID = tokens.UID WHERE verifiziert = false</pre> <p><br /></p>
P粉511985082P粉511985082433 Tage vor508

Antworte allen(1)Ich werde antworten

  • P粉322106755

    P粉3221067552023-08-14 13:23:45

    WHERE verified = false 或 verified is null

    Antwort
    0
  • StornierenAntwort