MySQL Join Mehrere Zeilen als Spalten
Angenommen, ich habe zwei Tabellen in einer MySQL-Datenbank.
Tabelle 1:
ID Name
1 Jim
2 Bob
Tabelle 2:
ID Place Race_Number
1 2nd 1
1 3rd 2
1 4th 3
2 1st 1
2 2nd 2
2 2nd 3
Gibt es beim Auswählen von Zeilen aus der Datenbank eine Möglichkeit, Zeilen aus der zweiten Tabelle als Spalten mit der ersten Tabelle zu verknüpfen? Zur Zeit benutze ichSELECT * FROM Table1 NATURAL JOIN Table2
.
Diese gibt aus:
ID Name Place Race_Number
1 Jim 2nd 1
1 Jim 3rd 2
1 Jim 4th 3
2 Bob 1st 1
2 Bob 2nd 2
2 Bob 2nd 3
Derzeit sortiere ich dies in meinem PHP-Skript, um es in ein Array zu sortieren. Dies ist ein Schmerz, da ich mir die IDs ansehen und prüfen muss, ob sie gleich sind, und sie dann entsprechend sortieren muss. Ich glaube, es gibt eine Möglichkeit, dies in MySQL richtig zu machen, ohne es in PHP in ein Array sortieren zu müssen. Es kann eine unbegrenzte Anzahl von Einträgen in der zweiten Tabelle für jede ID geben.
Das gewünschte Ergebnis direkt aus der MySQL-Abfrage ist:
ID Name Race1 Race2 Race3
1 Jim 2nd 3rd 4th
2 Bob 1st 2nd 2nd
Ich kann in der Tabelle selbst keine Spalten für Race1, Race2 usw. erstellen, da für jede ID eine unbegrenzte Anzahl von Rennen möglich ist.
Danke für jede Hilfe!