2016-08-07 12 views
0

Ich habe 2 Tabellen, beide Tabellen haben eine Datumsspalte - was ich tun möchte, ist die Tabellen zu verbinden, wenn die Zeilen Daten übereinstimmen.SQL-Join 2 Tabellen, in denen Datumsspalten übereinstimmen

Ich habe den folgenden Code versucht:

SELECT * 
    FROM bats 
    LEFT 
    JOIN weather 
    ON 'weather.GMT' = 'bats.startDate' 

Diese verbindet die Tabellen in eine neue Tabelle mit allen Werten der Fledermäuse aber Nullwerte für das Wetter.

Was ich will, ist die folgende, als Beispiel:

observationID | startDate | commonName | GMT | WindSpeed | Event | Temp 
------------------------------------------------------------------ 
     1   12/12/2001  Natterer  12/12/2001  25   Rain 
     2   13/12/2001  Brown Eared  13/12/2001  12  Cloudy 
     Null    Null    Null   14/12/2001  14   Rain 

Die oben der Tabellen verknüpft ist, wo es immer ein Eintrag für die Wettertabelle sein, aber könnte 1, keine oder mehrere Einträge vorhanden sein für den Schlägertisch.

Jede Hilfe wäre dankbar erhalten.

Kevin

+0

Tauschen Sie einfach den Platz von' bat' und 'weather' in Ihrem Join:' SELECT * FROM Wetter LINKS OUTER JOIN Fledermäuse ON 'Wetter .GMT '=' bats.startDate'' – trincot

+0

'weather.GMT' ist eine Zeichenfolge. Und ein Ergebnis ohne Datensatz ist wie ein Stock ohne Lollipop. Kein Spaß überhaupt. – Strawberry

+0

Diese Abfrage wird durch ein Ipython-Notizbuch generiert, ich habe es ursprünglich ohne die Anführungszeichen versucht, und es gab mir immer wieder die Fehlermeldung, dass die Spalten nicht existieren. Deshalb habe ich es mit den Anführungszeichen probiert und es hat eine Tabelle erzeugt, nur nicht das Tabellenformat, das ich wollte. –

Antwort

0

Du hast es in die andere Weise herum, versuchen Sie dies:

SELECT * 
FROM weather AS w 
LEFT JOIN bats AS b ON (w.GMT = b.startDate) 

BTW, bitte uppercases in den Spaltennamen vermeiden und immer für die Räume unterstreichen verwenden, es ist die Konvention :)

+0

Ich habe diesen Juan versucht und das gleiche Ergebnis nur im Rückwärtsgang, die Wetterdaten sind vorhanden und die Fledermausdaten sind alle keine. Ich denke, diese Abfrage erfordert etwas komplizierteres. –

0

Blick auf den Kommentar von Strawberry

'weather.GMT' ist ein String

Tauschen Sie die 's `s (der Schlüssel über Tab) und Sie werden weg lachen. Alternativ könnten Sie auch die Anführungszeichen wie in Juan Albertos Antwort entfernen und das wird auch funktionieren. Sie müssen nur die Anführungszeichen (`) verwenden, wenn Sie in Ihrem Spaltennamen ein Leerzeichen haben