Foro de elhacker.net

Programación => Bases de Datos => Mensaje iniciado por: [u]nsigned en 24 Febrero 2012, 21:47 pm



Título: Ayuda con Condicional
Publicado por: [u]nsigned en 24 Febrero 2012, 21:47 pm
Hola, bueno vol al grano, tengo estas tablas:

TABLA CHOFERES
Citar
idchofer   dni   nombre   apellido   direccion   telefono   lugar_trabajo   idclase   foto   resolucion

TABLA SECTORES
Citar
id   tipo   nombre

TABLA ASIGNACIONES_CHOFERES
Citar
id_chofer id_auto

Y tengo el siguinte codigo SQL que me genera una vista:

Código
  1. SELECT
  2. c.idchofer AS id,
  3. c.apellido AS apellido,
  4. c.nombre AS nombre,
  5. c.idclase AS clase,
  6. c.telefono AS telefono,
  7. s.nombre AS sector
  8. FROM
  9. (choferes c JOIN sectores s)
  10. WHERE (c.lugar_trabajo = s.id)

Hasta aca todo bien, el codigo SQL funciona perfecto,me devuelve una vista de todos los choferes con los datos deseados (cruzando tablas). El problema es que ahora quiero agregarle una condicion mas. La condicion que quiero agregar es que solo me devuelva los choferes cuyo id aparezca es la tabla ASIGNACIONES_CHOFERES, en la practica esto quiere decir que solo me devuelvan los choferes que tienen asignado un auto espefico, y esta asignacion se guarda en la tabla ASIGNACIONES_CHOFERES(id del chofer, id del auto asigado a este chofer).

Alguna sugerencia?


Título: Re: Ayuda con Condicional
Publicado por: Carloswaldo en 24 Febrero 2012, 22:07 pm
Yo creo que funcionaría con un:

Código
  1. AND asignaciones_choferes.id_chofer = choferes.idchofer

agregando un DISTINCT.


Título: Re: Ayuda con Condicional
Publicado por: Novlucker en 24 Febrero 2012, 23:18 pm
O ...
Código
  1. AND c.idchofer IN (SELECT DISTINCT id_chofer FROM asignaciones_choferes)
... que se ajusta mejor a tus necesidades

Saludos


Título: Re: Ayuda con Condicional
Publicado por: [u]nsigned en 25 Febrero 2012, 15:10 pm
Muchisimas gracias a ambos por responder. La solucion de Novlucker era justo lo que necesitaba, Tema resuelto!!

Saludos