4 Stimmen

MySQL Verknüpfung von 3 Tabellen mit 2 gemeinsamen Attributen

Ich habe 3 Tabellen mit der folgenden Struktur:

Tabelle_A:

  • Date , ID , A1 , A2 .

Tabelle_B:

  • Date , ID , B1 .

Tabelle_C:

  • Date , ID , C1 , C2 , C3 .

Ich möchte alle drei in einer Tabelle mit Attributen zusammenführen: Date , ID , A1 , A2 , B1 , C1 , C2 , C3 .

Für die 3 Tabellen einige der Daten und IDs sind die gleichen, aber einige sind nicht so möchte ich etwas wie eine LEFT JOIN mit einer UNION und dann RIGHT JOIN damit ich keine der Datums- und ID-Zeilen verliere. Es scheint, dass ich die Datums- und ID-Kombinationen benötige, um ihre eigenen eindeutigen Bezeichner zu erhalten, damit ich dann die Tabellen verbinden kann, aber ich habe eine Straßensperre getroffen.

3voto

Dan Soap Punkte 9849

Versuchen Sie es doch mal damit:

SELECT Date, ID, A1, A2, B1, C1, C2, C3
FROM (
    SELECT Date, ID
    FROM Table_A
    UNION
    SELECT Date, ID
    FROM Table_B
    UNION
    SELECT Date, ID
    FROM Table_B
) d
LEFT JOIN Table_A a on (d.Date=a.Date and d.ID=a.ID)
LEFT JOIN Table_B b on (d.Date=b.Date and d.ID=b.ID)
LEFT JOIN Table_C c on (d.Date=c.Date and d.ID=c.ID)

Damit sollten Sie die gewünschte Antwort erhalten, allerdings gehe ich davon aus, dass die Anweisung bei großen Datenmengen recht langsam sein wird.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X