Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1852 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [Résolu][MySQL] Jointure à 5 tables

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Résolu][MySQL] Jointure à 5 tables

n°1916026
PacoDL
Posté le 18-08-2009 à 00:41:51  profilanswer
 

Bonjour @ tous,
 
J'ai 1 base MySQL dans laquelle j'ai 5 tables où table_index référence un élément en fonction de son type (valué à 2, 3, 4 ou 5).
 
table_index
- id
- type
- id_element
 
table1
- id
- nom
- date
 
table2
- id
- nom
- date
 
table3
- id
- nom
- date
 
table4
- id
- nom
- date
 
Je veux faire un SELECT table_index en triant par la date de l'élément (provenant soit de table1, table2, table3 ou table4).
 
Voici ce que j'ai essayé mais ça ne marche pas, qu'est-ce qui ne va pas ???

Code :
  1. SELECT table_index.id, id_type, id_element, table1.nom, table1.date, table2.nom, table2.date, table3.nom, table3.date, table4.nom, table4.date FROM table_index
  2. INNER JOIN table1 ON (table_index.id_type=2 AND table_index.id_element = table1.id)
  3. INNER JOIN table2 ON (table_index.id_type=3 AND table_index.id_element = table2.id)
  4. INNER JOIN table3 ON (table_index.id_type=4 AND table_index.id_element = table3.id)
  5. INNER JOIN table4 ON (table_index.id_type=5 AND table_index.id_element = table4.id)
  6. ORDER BY table1.date, table2.date, table3.date, table4.date DESC;


Message édité par PacoDL le 18-08-2009 à 01:44:59
mood
Publicité
Posté le 18-08-2009 à 00:41:51  profilanswer
 

n°1916042
PacoDL
Posté le 18-08-2009 à 01:44:22  profilanswer
 

Finalement, j'ai trouvé la réponse, je poste la bonne requête :
 

Code :
  1. SELECT table_index.id, id_type, id_element, table1.nom, table1.date, table2.nom, table2.date, table3.nom, table3.date, table4.nom, table4.date FROM table_index
  2. LEFT JOIN table1 ON (table_index.id_type=2 AND table_index.id_element = table1.id)
  3. LEFT JOIN table2 ON (table_index.id_type=3 AND table_index.id_element = table2.id)
  4. LEFT JOIN table3 ON (table_index.id_type=4 AND table_index.id_element = table3.id)
  5. LEFT JOIN table4 ON (table_index.id_type=5 AND table_index.id_element = table4.id)
  6. ORDER BY COALESCE(table1.date, table2.date, table3.date, table4.date) DESC;


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [Résolu][MySQL] Jointure à 5 tables

 

Sujets relatifs
[RESOLU]couper un stringIntitulé d'un évènement sur 2 listes déroulantes [RESOLU]
[Résolu] [vba] aide à la syntaxe pour la dimension d'un tableaule plus grand d'une liste (trois tables en jeu)
Problème retour à la ligne données mysql[Résolu] Placer le code source d'une page web en buffer (Winnet)
requetes multiples MysqlProblème de connection Mysql en local, avec Easyphp ou Wampserver [OK]
[MySQL] Importation fichier txt : nom de champs?[VBS] Comparaison de dates (résolu)
Plus de sujets relatifs à : [Résolu][MySQL] Jointure à 5 tables


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR