Mammouth du PHP |
1141 Messages
04 oct. 2007, 14:47
j'ai du complexifier ma requete et là j'ai un peu de mal.
Je suis habitué des closes
WHERE et pas
JOIN
Voilà mes 3 tables :
Code : Tout sélectionner
CREATE TABLE table1
index MEDIUMINT(8) UNSIGNED NOT NULL auto-increment,
id MEDIUMINT(8) UNSIGNED NOT NULL default 0,
id1_table2 MEDIUMINT(8) UNSIGNED NOT NULL default 0,
id2_table2 MEDIUMINT(8) UNSIGNED NOT NULL default 0,
PRIMARY KEY(index)
CREATE TABLE table2
id MEDIUMINT(8) UNSIGNED NOT NULL default auto-increment,
nom varchar(8) UNSIGNED NOT NULL default '',
PRIMARY KEY(id)
CREATE TABLE table3
id MEDIUMINT(8) UNSIGNED NOT NULL default 0,
id_table1 MEDIUMINT(8) UNSIGNED NOT NULL default 0,
PRIMARY KEY(id)
le point de départ est la table 3 contenant des objets chacun rataché à un seul objet de la table 1
les objets de la table 1 sont des modèles des objets de la table 3.
A un modèle on associe 2 types (id1_table2 et id2_table2).
Ces types sont stockés avec leur nom dans la table 2.
Ce que je voudrais faire, c'est pour un ensemble d'objets de la table 3,
obtenir les noms des 2 types associés à chacun des objets (à travers leur modèle)
j'ai tenté la requête suivante :
Code : Tout sélectionner
SELECT table3.id as id_objet, table1.id as id_modele,t2_1.nom as nom_type1,t2_2.nom as nom_type2
FROM table1
JOIN table2 t2_1 ON t2_1.id = table1.id1_table2
JOIN table2 t2_2 ON t2_2.id = table1.id2_table2
JOIN table3 ON table3.id_table1 = table1.id
WHERE table3.id IN (chaine_des_identifiants)"
Mais la requête ne fonctionne carrément pas. Une idée?
*edit : fausse alerte, je suis moins nul que je ne le pensais, la requête fonctione c'était juste une erreur de nom de colonne.