Jointure de 3 tables

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Jointure de 3 tables

par sadeq » 13 sept. 2007, 23:56

Non, ce n'est pas une bonne démarche car dans le modèle de données les tables planning et cv sont distinctes et il n'y a conceptuellement parlant aucun lien fonctionnel direct entre elles.

C'est pourquoi, si tu utilise une seule requête SELECT ciblant les 3 tables dont celle de l'utilisateur est la centrale, tu obtiens forcement un multiplixage des données. Car pour un même utilisateur on rencontre N cv et M plannings. Ce qui donne NxM résultats avec des redondances des données communes.

Tu peux extraire les cv à part et les plannings à part les résultats deviennent alors beaucoup plus lisibles. Deux requêtes séparées donc.

Jointure de 3 tables

par cf357 » 13 sept. 2007, 11:58

Bonjour tout le monde !

Je suis en train de développer un petit système de recherche, et je me retrouve avec la problématique suivante : filtrer via 3 tables

structures :

Code : Tout sélectionner

table cv_fichiers : cv_id, cv_filename, cand_id

Code : Tout sélectionner

table user_cand_id cand_id, cand_name

Code : Tout sélectionner

table planning plan_day, cand_id

ma requête pour lier les CV aux candidats :

Code : Tout sélectionner

SELECT * FROM cv_fichiers INNER JOIN user_candidats ON cv_fichiers.user_cand_id = user_candidats.user_cand_id WHERE (blabla)
La requete marche bien pour joindre les CV aux utilisateurs, mais je ne sais pas comment y adjoindre la nouvelle table de plannings...

En rajoutant une clause INNER JOIN plannings ON (...), j'obtiens tout en double/triple :s. Du coup je rajoute un "GROUP BY", mais je ne sais pas si tout ça est la meilleure chose à faire...

SGBD : MySQL5