J'ai une table MySQL comme celle-ci:
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
Comment puis-je obtenir des données comme ceci:
User_id course 1 course2 course3 course4
1 yes-location1 yes-location2 yes-location1 NULL
2 NULL yes-location1 NULL yes-location4
Réponses:
Vous devez faire pivoter les données en utilisant
GROUP BY
avecMAX
agrégat et utiliserCASE
pour filtrer parUser_id
.Requete:
Exemple de requête dans SQL Fiddle .
Vous pouvez remplacer
course_location
par siCONCAT('YES-', course_location)
le leaderYES
est en effet nécessaire.Production:
la source
Création de table:
Insertion:
Ensemble de résultats:
Ensemble de résultats attendus:
Solution:
la source