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

problema con multiples FK

Estas en el tema de problema con multiples FK en el foro de Mysql en Foros del Web. hola mi problema es el siguiente, tengo 2 fk de una tabla apuntan al mismo pk de otra tabla ...como hago para consultar? tabla1: solicitudes ...
  #1 (permalink)  
Antiguo 10/10/2010, 14:45
Avatar de misFranciscanas  
Fecha de Ingreso: octubre-2010
Mensajes: 4
Antigüedad: 13 años, 6 meses
Puntos: 0
Pregunta problema con multiples FK

hola mi problema es el siguiente, tengo 2 fk de una tabla apuntan al mismo pk de otra tabla ...como hago para consultar?

tabla1: solicitudes
-----------------------
pk: idsolicitud
fk: solicitante
desc_problema
fk: gestor

(las fk de solicitudes apuntan a la pk de personal)

tabla2: personal
---------------------
pk: idpersonal
nombre
apellido

necesito obtener:

idsolicitud : 1
solicitante : Juan Gomez
desc_problemano: funciona mas
gestor: Ivan Charre


como armo el select, se entiende?
  #2 (permalink)  
Antiguo 10/10/2010, 15:47
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: problema con multiples FK

Debes invocar una vez la tabla referida por cada FK que exista en la tabla. O sea, algo así:
Código MySQL:
Ver original
  1.     s.idsolicitud,
  2.     T1.nombre solicitante,
  3.     s.desc_problemano,
  4.     t2.nombre gestor
  5.     solicitudes s INNER JOIN
  6.     personal t1 ON s.solicitante = t1.idpersonal  INNER JOIN
  7.     personal t2 ON s.gestor = t2.idpersonal;
Como podrás ver, solicitante y gestor en este caso se presentan como alias de los campos provenientes de cada una de las tablas personal, pero para evitar problemas, cada tabla debe tener un alias a su vez, de modo de que no se produzcan duplicidades de tabla y que se pueda determinar de qué tabla se toma qué dato.
Por su lado, en el ON, se usan los campos de la tabla solicitudes tal y como se llaman. Esto no genera ninguna confusión al MySQL, porque en el FROM no se pueden invocar alias del SELECT (tampoco en el WHERE), por lo que sólo pueden pertenecer a las tablas.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 11/10/2010, 07:42
Avatar de misFranciscanas  
Fecha de Ingreso: octubre-2010
Mensajes: 4
Antigüedad: 13 años, 6 meses
Puntos: 0
Exclamación Respuesta: problema con multiples FK

muchas gracias gnzsoloyo, funcionó
  #4 (permalink)  
Antiguo 11/10/2010, 07:58
Avatar de misFranciscanas  
Fecha de Ingreso: octubre-2010
Mensajes: 4
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: problema con multiples FK

..dejo la consulta por si alguien necesita una idea de como hacerlo

Código MySQL:
Ver original
  1.   s.idsolicitudReposicionInsumo,
  2.   CONCAT(sol.per_apellido, ', ',sol.per_nombre) AS solicitante,
  3.   CONCAT(gest.per_apellido, ', ',gest.per_nombre) AS gestor
  4. FROM solicitudreposicioninsumo s
  5.   INNER JOIN personal sol
  6.     ON s.solicitante = sol.nrolegajo
  7.   LEFT JOIN personal gest
  8.     ON s.gestor = gest.nrolegajo


saludos

Etiquetas: multiples
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:35.