Ver Mensaje Individual
  #1 (permalink)  
Antiguo 08/07/2009, 09:02
julms
 
Fecha de Ingreso: noviembre-2008
Mensajes: 74
Antigüedad: 16 años
Puntos: 0
Que me recomendarian para construir esta consulta?

Hola, imaginaos que tenemos estas tablas Concesionarios, Coches y Reparaciones.

Estan relacionadas de esta forma:
Reparaciones con Coches y Concesionarios, de forma que en en cada reparacion se identifica el concesario y el coche.

Ejemplo:
Coche (key, nombre)
1 - Peugeot 407 matricula yyyy
2 - Peugeot 102 matricula xxxx
3 - peugeot 605
Concesionarios (key, nombre)
1 - Disauto
2 - La mora
3 - Senel
4 - Mata
Reparaciones (key_coche,key_concesaionario)
1 1
1 2
1 3
2 1
2 3
(El coche 1, peugeot 407 ha tenido alguna reparacion en el concesionario Disauto, La mora y Senel. El coche 2, peugeout 102 ha tenido una reparacion en el concesario Disauto)


Entonces, suponer que quiero saber, que coches han sido reparados en unos concesionarios que se escogen de alguna forma.
Por ejemplo, quiero saber que coches han sido reparados en los concesionarios Disauto y Senel (el mismo coche en ambos), en el ejemplo serian los coches 1 y 2. Me explico?


A mi se me ocurren dos maneras:
a) Manera fea con sql, creando una select especial, dependiendo de los concesionarios elegidos:
select * From coches c, reparaciones r WHERE c.id=r.idcoche AND r.idconcesaionario IN (--->> esto cambia dependiendo de la seleccion de concesionarios<---)
b) con php, obteniendo los coches reparados en cada concesionario y aplicando algun algorimo haga una interseccion entre los registros.


Se os ocurre alguna otra forma, mas optima? mejor?

Gracias a todos