SELECT sur une table avec id/nom sur 3 autres tables

arphaxad Messages postés 2 Date d'inscription dimanche 18 mars 2007 Statut Membre Dernière intervention 3 octobre 2008 - 30 sept. 2008 à 17:21
crn_c21 Messages postés 302 Date d'inscription samedi 24 janvier 2004 Statut Membre Dernière intervention 4 février 2011 - 6 oct. 2008 à 11:09
Bonjour,

Je suis sur le problème depuis deux jours et je pense avoir fait le tour de mes ressources face à mon problème.
Les Tables :
3 tables "TAB2", "TAB3" et "TAB4" avec comme colonnes "ID", "NOM", et d'autres inutilisées pour le moment.
1 table principale "TAB1" avec les colonnes "ID, "DATE", "DEP", "ID_TAB2", "ID_TAB3", "ID_TAB4", "HEURE", "TARIF"
(les tables TAB2 à TAB3 ont toutes les champs 'ID' index Unique et 'NOM' )


après de nombreux essais, je n'arrive toujours pas à afficher les enregistrements de TAB1 en remplaçant ID_TAB2 à ID_TAB4 par les champs noms des tables respectives.

Voici ma requête :
SELECT date, dep, id_tab2, id_tab3, id_tab4, heure, tarif FROM tab1
INNER JOIN tab2 ON (tab1.id_tab2=tab2.id)
INNER JOIN tab3 ON (tab1.id_tab3=tab3.id)
INNER JOIN tab4 ON (tab1.id_tab4=tab4.id) ORDER BY date ASC

Je souhaite récupérer ensuite le résultat MySQL_Fetch_Array() dans $ligne['tab2.nom'] par exemple.

Hé ben j'y arrive pas ...

3 réponses

crn_c21 Messages postés 302 Date d'inscription samedi 24 janvier 2004 Statut Membre Dernière intervention 4 février 2011
1 oct. 2008 à 08:46
normalement ca devrait marcher :

SELECT date, dep, T2.NOM, T3.NOM, T4.NOM, heure, tarif
FROM tab1 AS T

INNER JOIN tab2 AS T2 ON (T1.id_tab2=T2.id)
INNER JOIN tab3 AS T3 ON
(T1.id_tab3=T3.id)
INNER JOIN tab4 AS T4 ON (T1.id_tab4=T4.id)
ORDER
BY date ASC

à condition que pour chaque enregistrement il y correspondance dans toutes les tables sinon essaye :

SELECT date, dep, T2.NOM, T3.NOM, T4.NOM, heure, tarif

FROM tab1 AS T


LEFT OUTER JOIN tab2 AS T2 ON (T1.id_tab2=T2.id)


LEFT OUTER JOIN tab3 AS T3 ON
(T1.id_tab3=T3.id)


LEFT OUTER JOIN tab4 AS T4 ON (T1.id_tab4=T4.id)

ORDER
BY date ASC
0
arphaxad Messages postés 2 Date d'inscription dimanche 18 mars 2007 Statut Membre Dernière intervention 3 octobre 2008
3 oct. 2008 à 11:56
salut,

merci pour ta réponse !

Pour le moment j'ai encore eu le temps de réessayer.
pour l'alias, j'ai pas encore eu l'occase de m'en servir.
Dans PHP, j'utilise l'alias ou les noms de table/champs habituels ?
0
crn_c21 Messages postés 302 Date d'inscription samedi 24 janvier 2004 Statut Membre Dernière intervention 4 février 2011
6 oct. 2008 à 11:09
Connais pas PHP
0
Rejoignez-nous