MySQL - Zeige Datensatzpaare in einem Datensatz

8

Ich habe folgende Daten in einer Tabelle:

%Vor%

Diese Daten werden chronologisch mit dem DateTime-Feld sortiert. Ich möchte diese Record 'Paare' als 1 Zeile anzeigen, so:

%Vor%

Es gibt ein paar Vorbehalte: Wenn es keinen Type1 zum Starten gibt, dann zeige NULL im Feld Typ1Km der resultierenden Tabelle an. Wenn kein Typ2-Ende vorhanden ist, wird NULL in den Feldern 'Type2Km' der Datensätze angezeigt.

Wie könnte ich das tun?

    
Simon 11.08.2011, 02:20
quelle

3 Antworten

4

Leider fehlt MySQL eine FULL OUTER JOIN , also müssen Sie UNION zwei Sätze zusammensetzen.

Damit erhalten Sie die Fälle, in denen Type1Km existiert, unabhängig davon, ob Type2Km dies tut oder nicht.

%Vor%

Jetzt brauchen wir die Fälle, in denen Type1Km nicht existiert.

%Vor%

UNION diese zusammen, und Sie haben das gewünschte Ergebnis:

%Vor%

Aktualisieren

In meiner vorherigen Abfrage habe ich vergessen, einen Datensatz vom Typ "2" ganz am Anfang zu berücksichtigen. Aktualisiert, um dies zu berücksichtigen. Hier sind die Ergebnisse, die ich bekomme:

Daten in times Tabelle:

%Vor%

Ergebnisse der Abfrage:

%Vor%     
Wiseguy 11.08.2011, 03:17
quelle
0

Wenn Sie können, ändern Sie Ihre Tabellenstruktur mit einem Typ1km und einem Typ2km, dann aktualisieren Sie entweder beim Hinzufügen kms oder nur zusammenfassen, wenn Sie auswählen.

    
njzk2 11.08.2011 14:19
quelle
0

Dies könnte funktionieren

%Vor%

Ich nehme die Gruppe stundenweise an, und auch nichts wert, Ihre Beispielergebnisse sind nicht präzise

Um besser zu erklären, was diese lustige -Abfrage bewirkt

%Vor%     
ajreal 11.08.2011 14:28
quelle

Tags und Links