2011-12-09 3 views
0

J'ai 3 tables.Requête MySQL à partir de 3 tables

Mark 
id_mark 
mark_name 

exemple enregistrement: 1, 'Ford'


Model 
id_model 
id_mark 
mondel_name 

exemple enregistrement: 1, 1, 'Focus'


Adds 
id_adds 
id_model 
name 
price 
etc. 

exemple enregistrement: 1 1 'annonce', 20000

Comment exécuter une requête cet exemple retourné résultat:

My ad Ford Focus 20000 
+0

Faire une jointure? http://dev.mysql.com/doc/refman/5.1/fr/join.html Avez-vous encore du code? – konsolenfreddy

+0

Vous voulez un INNER JOIN - jetez un oeil ici http://dev.mysql.com/doc/refman/5.6/fr/join.html –

Répondre

0
select adds.id_model, mark.mark_name, model.model_name adds.price 
from mark, model, adds 
where model.id_mark = mark.id_mark and adds.id_model = model.id_model 
1

En utilisant votre orthographe exacte:

SELECT a.name, mk.mark_name, mo.mondel_name, a.price 
FROM Adds a 
INNER JOIN Model mo ON mo.id_model = a.id_model 
INNER JOIN Mark mk ON mk.id_mark = mo.id_mark 

Bien au lieu d'inclure id_mark dans votre Model table, je pense que vous devriez avoir une table de jointure qui se compose de rien mais id_model et id_mark et la clé est composée des deux champs.

0
select a.name, ma.mark_name, mo.model_name, a.price 
from adds a, mark ma, model mo 
where a.id_model = mo.id_model 
and ma.id_mark = mo.id_mark 

Attention avec le modèle de données, si vous interrogez comme ça et il n'y a plus d'une marque pour le modèle que vous allez obtenir quelque chose comme

Mon annonce Ford Focus 20000 Mon annonce Fiat Mise au point 20000