Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Ayuda con multiples concat en MySQL

Estas en el tema de Ayuda con multiples concat en MySQL en el foro de Bases de Datos General en Foros del Web. Bueno mi problema es el siguiente: Tengo dos tablas, una llamada "personal"y otra llamada "listas_grupos", en la cual, la ultima mencionada tiene dos llaves foráneas ...
  #1 (permalink)  
Antiguo 02/01/2011, 04:27
 
Fecha de Ingreso: enero-2011
Mensajes: 1
Antigüedad: 13 años, 4 meses
Puntos: 0
Ayuda con multiples concat en MySQL

Bueno mi problema es el siguiente:

Tengo dos tablas, una llamada "personal"y otra llamada "listas_grupos", en la cual, la ultima mencionada tiene dos llaves foráneas a "personal" y bueno, lo que quiero hacer es lo siguiente:

SELECT `lista_grupos`.`id`,
CONCAT(`personal`.`nombre`,' ',`personal`.`apellidos`) AS `profesor`,`asignatura`,
CONCAT(`personal`.`nombre`,' ',`personal`.`apellidos`) AS `orientador`
FROM `lista_grupos`,`personal` WHERE `personal`.`id` = `lista_grupos`.`profesor`AND `personal`.`id` = `lista_grupos`.`orientador`;


y que me de como resultado el que, dependiendo de cada id, salga el nombre correcto del personal correspondiente, pero no sale como yo lo necesito, gracias por su ayuda.

Version de MySQL: 5.5.8
  #2 (permalink)  
Antiguo 02/01/2011, 06:27
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Ayuda con multiples concat en MySQL

El problema es que la fuente de datos para Orientados y Profesor es la misma, y el discriminante está en la otra tabla. En estos caso debe buscarse la concidencia para un caso separadamente de la del otro caso y el único modo de hacerlo es que se invoque la fuente de datos dos veces, una para cada caso, con uso de alias:
Código MySQL:
Ver original
  1.     L.`id`,
  2.     CONCAT(P.`nombre`,' ', P.`apellidos`) `profesor`,
  3.     `asignatura`,
  4.     CONCAT(O.`nombre`,' ', O.`apellidos`) `orientador`
  5.     `lista_grupos` L INNER JOIN `personal` P ON L.`profesor`  = P.`id`
  6.     INNER JOIN `personal`O  ON `personal` P ON L.`orientador`  = PO.`id`
  7.     L.`id`
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: multiples, mysql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:03.