Foro de elhacker.net

Programación => Bases de Datos => Mensaje iniciado por: porris en 28 Agosto 2011, 21:10 pm



Título: Consultas a la BD
Publicado por: porris en 28 Agosto 2011, 21:10 pm
Hola a todos  ;D espero me puedan ayudar.

lo que pasa es que tengo 2 tablas
1. clientes
2. ciudades

resulta que en la tabla clientes tengo 2 campos
1. ciudad_exp_cedula  --> ciudad de expedición de la cédula
2. ciudad_residencia   --> ciudad de residencia

estas 2 son llaves foráneas referenciadas a ciudades, pero cuando hago la consulta para traer el nombre de las 2 ciudades me devuelve vació, pero si lo hago para traer 1 nombre de 1 ciudad si funciona.

SELECT cl.identificacion,cl.ciudad_exp_cedula,ci.nombre,cl.ciudad_residencia,ci.nombre
FROM clientes cl, ciudades ci
WHERE cl.ciudad_exp_cedula=ci.id AND  cl.ciudad_residencia=ci.id 


Título: Re: Consultas a la BD
Publicado por: Shell Root en 28 Agosto 2011, 21:45 pm
Pero no se supone que deberían de ser valores diferentes? Verificaste en la base de datos que si existan valores reales que concuerden con tu búsqueda?


Título: Re: Consultas a la BD
Publicado por: porris en 28 Agosto 2011, 22:01 pm
en mi BD tengo datos reales, y pues yo queria hacerlo haci traer las ciudades de 1 sola tabla.

yo creo que lo que pasa es que MYSQL no sabe que nombre de cual ciudad debe traerme si la de la cedula o la del lugar de residencia y pues la idea es hacerla  sin crear mas campo en cliente o otra tabla de ciudades

si alguien tiene alguna idea de como deberia hacerle le agradeceria :) :)


Título: Re: Consultas a la BD
Publicado por: porris en 29 Agosto 2011, 04:06 am
ya resolvi mi problema gracia a »RA« Morph  por la ayuda, aqui escribo como quedaria la consulta sql

SELECT cl.identificacion,cl.ciudad_exp_cedula,ci.nombre,cl.ciudad_residencia,ci2.nombre
FROM clientes cl, ciudades ci, ciudades ci2
WHERE cl.ciudad_exp_cedula=ci.id AND  cl.ciudad_residencia=ci2.id

Hay que declarar 2 veces la tabla ciudades pero con alias diferentes ciudades ci, ciudades ci2 y dependiendo el alia traido el dato que necesito  ci2.nombrem ci.nombre

:)