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

como hacer consulta, relacionando varios campos de una tabla con uno solo de otra?

Estas en el tema de como hacer consulta, relacionando varios campos de una tabla con uno solo de otra? en el foro de Mysql en Foros del Web. Tengo un problema al combinar ciertas 2 tablas, personal y localidades tengo dos tablas: personal(id,apellido, nombre, fechaNacimiento, dni, domicilio, antiguedad, localidadNacimiento, localidadVive) y localidades(id, descripcion) ...
  #1 (permalink)  
Antiguo 05/01/2009, 11:31
 
Fecha de Ingreso: enero-2009
Mensajes: 9
Antigüedad: 15 años, 3 meses
Puntos: 0
Pregunta como hacer consulta, relacionando varios campos de una tabla con uno solo de otra?

Tengo un problema al combinar ciertas 2 tablas, personal y localidades
tengo dos tablas: personal(id,apellido, nombre, fechaNacimiento, dni, domicilio, antiguedad, localidadNacimiento, localidadVive)

y localidades(id, descripcion)

necesito consultar, pero como veran existe una doble relacion: personal-localidadVive y personal-localiadNacimiento.
Alhacer la consulta tengo un problema de concordancia de datos.

Esta es mi consulta:
$query="select e.id, e.apellido, e.nombre, e.fechaNacimiento, e.dni, e.domicilio, e.antiguedad, e.localidadNacimiento as 'idLocalidadNacimiento', l.descripcion as 'localidadNacimiento', e.localidadVive as 'idLocalidadVive', l.descripcion as 'localidadVive'
from efectivos e, localidades l where l.id=e.localidadNacimiento and e.nombre like'%nico%' ";

Necesito mostrar el idLocalidadNacimiento, con su respectiva descripcion y tambien idLocalidadVive con su respectiva descripcion, lo que se ver reflejado en esta parte de a consulta:
e.localidadNacimiento as 'idLocalidadNacimiento', l.descripcion as 'localidadNacimiento', e.localidadVive as 'idLocalidadVive', l.descripcion as 'localidadVive'

cuando ejecuto esa consulta, las descripciones respectivas a cada campo de localidad(localidadNacimiento, y localidadVive, no son coherentes)

Quien quiera empezar con una buena accion este año, por favor ayudeme!
Gracias!!
  #2 (permalink)  
Antiguo 05/01/2009, 13:33
Avatar de Nano_  
Fecha de Ingreso: febrero-2006
Ubicación: Bogotá, Colombia
Mensajes: 1.866
Antigüedad: 18 años, 2 meses
Puntos: 96
Respuesta: como hacer consulta, relacionando varios campos de una tabla con uno solo

Saludos..

Podrias probar de la siguiente manera:

Cita:
SELECT e.id, e.apellido, e.nombre, e.fechaNacimiento, e.dni, e.domicilio,
e.antiguedad, e.localidadNacimiento as 'idLocalidadNacimiento',
l.descripcion as 'localidadNacimiento', e.localidadVive as 'idLocalidadVive',
lo.descripcion as 'localidadVive'
FROM efectivos e
INNER JOIN localidades l ON l.id=e.localidadNacimiento
INNER JOIN localidades lo ON lo.id=e.localidadNacimiento
WHERE e.nombre LIKE '%nombre%'
mmm.. me queda cierta duda pero bueno haz el intento y si algo lo comentas..

Hasta Pronto
__________________
:.:Nano.:: @nano_hard - Retornando al foro
  #3 (permalink)  
Antiguo 07/01/2009, 13:54
 
Fecha de Ingreso: enero-2009
Mensajes: 9
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: como hacer consulta, relacionando varios campos de una tabla con uno solo

Perfecto! Gracias Nano! la consulta me sirvio, solo tube que modificarle una ppequeña cosa que se te paso hiciste 2 veces el mismo inner join, on l.id=e.localidadNacimiento, una debia ser localidadNacimiento, la otra localidadVive.
Te agradezco muchisimo!

SELECT e.id, e.apellido, e.nombre, e.fechaNacimiento, e.dni, e.domicilio,
e.antiguedad, e.localidadNacimiento as 'idLocalidadNacimiento',
l.descripcion as 'localidadNacimiento', e.localidadVive as 'idLocalidadVive',
lo.descripcion as 'localidadVive'
FROM efectivos e
INNER JOIN localidades l ON l.id=e.localidadNacimiento
INNER JOIN localidades lo ON lo.id=e.localidadVive
WHERE e.nombre LIKE '%nombre%'
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 15:13.