Ver Mensaje Individual
  #1 (permalink)  
Antiguo 13/07/2009, 07:37
The Stranger
 
Fecha de Ingreso: marzo-2006
Mensajes: 66
Antigüedad: 18 años, 8 meses
Puntos: 0
Consulta a 3 tablas al mismo tiempo

Hola a todos. Estoy teniendo problemas para realizar una consulta que involucre a 3 tablas al mismo tiempo. Quizá alguien me pueda ayudar, pues pienso que es un problema "de principiante".

Básicamente tengo 3 tablas (muy sencillas), en una almaceno nombres de marcas de vehículos (FORD, NISSAN, FIAT, etc), en otra almaceno los modelos (TSURU, FOCUS, etc.) y en la última almaceno los autos en sí. He aquí la estructura (sólo los campos escenciales):


Código:
TABLA: Marcas
id
nombre

TABLA: Modelos
id 
nombre
marcaid // (el id de la marca, vinculación con la tabla MARCAS)

TABLA: Autos
id
nombre
modeloid // (el id del modelo, vinculación con la tabla MODELOS)

Ahora bien, lo que intento realizar es una consulta que "obtenga los últimos autos añadidos de una marca determinada". Lo más fácil sería realizar una consulta similar a esta:

Código:
SELECT * FROM autos WHERE marcaid=21 order by id desc;
Sin embargo, mi tabla AUTOS no tiene la columna "marcaid", solo tiene vinculación con la tabla MODELOS a través de "modeloid". La tabla MODELOS sí tiene vinculación con la tabla MARCAS a través del camo "marcaid". Por tal razón me puse a investigar e hice una consulta que parecía solucionar los problemas:

Código:
SELECT * FROM autos,modelos,marcas WHERE autos.modeloid = modelos.id AND modelos.marcaid = 21;
Sin embargo, obtengo como resultado TODOS los registros de mi tabla AUTOS. Y nó solo los que pertenecen a cierta marca.

Ese sería mi problema y mi duda. De antemano, muchas gracias.