Left Outer Join gibt nicht alle Zeilen von meiner linken Tabelle zurück?

7

Ich versuche, die Anzahl der Seiten pro Tag mit der folgenden Abfrage zu ermitteln.

%Vor%

Die Ausgabe, die ich bekomme, ist dies:

%Vor%

Die Sache ist, in meiner Tagesübersicht habe ich eine einzelne Spalte, die die Zahl 1 bis 30 enthält, um die Tage in einem Monat darzustellen. Ich habe eine linke äußere Verbindung gemacht und ich erwarte, dass alle Tage an der Tagesspalte gezeigt werden!

Aber meine Abfrage macht das, warum könnte das sein?

Danke für die Hilfe.

    
Abs 16.01.2011, 19:54
quelle

2 Antworten

14

Sie geben an, dass die verbundene tracking.open_id den Wert 10 haben muss. Für die anderen Zeilen ist NULL, sodass sie nicht angezeigt werden!

    
Nanne 16.01.2011, 19:57
quelle
43

Nannes Antwort gegeben erklärt, warum Sie nicht das gewünschte Ergebnis erhalten (Ihre WHERE-Klausel entfernt Zeilen), aber nicht, wie Sie es beheben.

Die Lösung besteht darin, WHERE in AND zu ändern, so dass die Bedingung Teil der Join-Bedingung ist, nicht ein Filter, der nach dem Join angewendet wird:

%Vor%

Jetzt sind alle Zeilen in der linken Tabelle im Ergebnis vorhanden.

    
Mark Byers 16.01.2011 20:00
quelle

Tags und Links