Tengo una tabla MySQL como esta:
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
¿Cómo puedo obtener datos de un resultado como este:
User_id course 1 course2 course3 course4
1 yes-location1 yes-location2 yes-location1 NULL
2 NULL yes-location1 NULL yes-location4
Respuestas:
Debe pivotar los datos
GROUP BY
conMAX
agregado y usarCASE
para filtrar porUser_id
.Consulta:
Consulta de muestra en SQL Fiddle .
Puede reemplazar
course_location
por si es realmente necesarioCONCAT('YES-', course_location)
el liderazgoYES
.Salida:
fuente
Creación de tabla:
Inserción:
Conjunto resultante:
Conjunto de resultados esperados:
Solución:
fuente