Ich hoffe, es gibt eine einfache Antwort darauf. Die Teilnehmer fahren über eine Serie von 3 Rennen. Einige Konkurrenten tauchen nur für ein Rennen auf. Wie könnte ich ein Endergebnis für ALLE Konkurrenten zeigen?Wählen Sie aus Tabellen mit verschiedenen Anzahlen von Zeilen
Rennen 1
+------+--------+
| name | result |
+------+--------+
| Ali | 30 |
| Bob | 28 |
| Cal | 26 |
+------+--------+
Rennen 2
+------+--------+
| name | result |
+------+--------+
| Ali | 32 |
| Bob | 31 |
| Dan | 24 |
+------+--------+
Rennen 3
+------+--------+
| name | result |
+------+--------+
| Eva | 23 |
| Dan | 25 |
+------+--------+
Das Endergebnis sollte wie folgt aussehen:
+------+--------+--------+--------+
| name | result | result | result |
+------+--------+--------+--------+
| Ali | 30 | 32 | |
| Bob | 28 | 31 | |
| Cal | 26 | | |
| Dan | | 24 | 25 |
| Eva | | | 23 |
+------+--------+--------+--------+
Das Problem, das ich habe, ist mit der Bestellung nach Namen aus mehreren Tabellen.
Hier ist die Beispieldaten:
CREATE TABLE race (name varchar(20), result int);
CREATE TABLE race1 LIKE race;
INSERT INTO race1 VALUES ('Ali', '30'), ('Bob', '28'), ('Cal', '26');
CREATE TABLE race2 like race;
insert INTO race2 VALUES ('Ali', '32'), ('Bob', '31'), ('Dan', '24');
CREATE TABLE race3 LIKE race;
INSERT INTO race3 VALUES ('Eva', '23'), ('Dan', '25');
Vielen Dank!
Ich würde empfehlen, alle Rennen in 1 Tisch. 'CREATE TABLE rennen (Name varchar (20), race_id, Ergebnis int);' Dies sollte es viel einfacher zu Abfrage machen. Vor allem, wenn Sie später weitere Rennen hinzufügen möchten. –
Ich habe das versucht, konnte aber keine Abfrage erstellen, die keinen Pivot enthielt, um die mehreren Zeilen pro Name in das richtige Ausgabeformat zu bringen. Hast du einen Vorschlag? – logicmonkey
Ich habe eine neue Antwort erstellt. –