Ich habe eine MySQL-Tabelle wie diese:
User_Id course_name course_location course_id
1 course name 1 location 1 1
1 course name 2 location 2 2
1 course name 3 location 1 3
2 course name 2 location 1 2
2 course name 4 location 4 4
Wie kann ich Daten wie folgt erhalten:
User_id course 1 course2 course3 course4
1 yes-location1 yes-location2 yes-location1 NULL
2 NULL yes-location1 NULL yes-location4
Antworten:
Sie müssen Daten
GROUP BY
mitMAX
Aggregat schwenken undCASE
zum Filtern nach verwendenUser_id
.Abfrage:
Beispielabfrage in SQL Fiddle .
Sie können ersetzen,
course_location
indemCONCAT('YES-', course_location)
die führendeYES
in der Tat benötigt wird.Ausgabe:
quelle
Tabellenerstellung:
Einfügen:
Ergebnismenge:
Erwartete Ergebnismenge:
Lösung:
quelle