Me surge una query primeriza para mi, tengo usuarios que ubicar en un departamento y darle un cargo en concreto, para ello tengo 4 tablas
tabla 1 Usuarios (id_Usuario, Nombre...)
tabla 2 Departamentos (id_Departamento, departamento)
tabla 3 Cargos_dpto (id_Cargo_dpto, cargo)
tabla 4 asistencia_dpto (id_asistencia, id_Usuario, id_Departamento, id_Cargo): aqui listo cada usuario a que departamento y cargo le otorgo (pueden ser varios departamentos con varios cargos, es decir varias filas para un usuario)
Pues bien, si un usuario está en varios departamentos me devuelve tantas líneas como departamentos tenga... y necesito obtenerlos combinados en una sola línea
Query utilizada (generada de forma dinámica con php, esto es para que siempre coga todos los dptos si se agrega alguno a las tablas):
Código SQL:
Ver original
SELECT U.id_Usuario, CONCAT(U.Nombre,' ',U.PrimerApellido,' ',U.SegundoApellido) Usuario, IF(A.id_Departamento=1,C.id_Cargo_dpto,NULL) 'Almacén de material', IF(A.id_Departamento=2,C.id_Cargo_dpto,NULL) 'Calidad', IF(A.id_Departamento=3,C.id_Cargo_dpto,NULL) 'Controlling', FROM usuarios U LEFT JOIN asistencia_dpto A ON A.id_Usuario=U.id_Usuario LEFT JOIN cargos_dpto C ON C.id_Cargo_dpto=A.id_Cargo_dpto
y lo que obtengo es:
Código HTML:
Ver original
Pepe pepote 2 NULL NULL Pepe pepote NULL 2 NULL Carmen carmona NULL 1 NULL
Lo que deseo:
Código HTML:
Ver original
Pepe pepote 2 2 NULL Carmen carmona NULL 1 NULL
No sirve Group BY U.id_Usuario ya que lo único que consigo es que me salga el primer resultado, pero no los combina