Requete difficile pour moi

Par cbongrand, il y a 7 ans


Base de données MySQL

Bonjour

je plante grave pour l'ecriture d'une requete SQL pour MySql
je suis en train d'ecrire une application de gestion de planning medical
je dispose de 2 tables:

Je veux lister via la requête que je cherche à écrire, la forme suivante
DATE MED1 MED2 MED3
01/01/2018 DUPONT TOTO DURAND
02/01/2018 TOTO DURAND DUPONT

Avec dans ma table med par exemple
ID MED_NOM
1 DUPONT
2 DURAND
3 TOTO

et dans ma table planning
ID DATE ID_MED1 ID_MED2 ID_MED3
1 01/01/2018 1 3 2
2 02/01/2018 3 2 1

j'arrive avec le debut de requete suivant , mais impossible d'editer MED2 et MED 3
Faut t'il creer une sous requete ?

Ci dessous mon ébauche de script , mais dès MED2 cela plante

SELECT planning.DATE, planning.ID_MED1, planning.ID_MED2, med.ID, med.MED_NOM AS MED1
FROM planning, med
WHERE planning.ID_MED1 = med.ID, planning.ID_MED2=MED.ID

Merci pour tout

Bien cordialement

2 réponses

Huggy, il y a 7 ans

Bonjour,
Ce n'est pas une bonne idée de mettre la liste des ID_MED dans la table planning
il faut plutot créer une table planning_med qui lie un medecin à un planning et qui reprend ID_PLANNING et ID_MED et une POSITION
Comme ça si tu veux connaitre le planning d'un médecin tu n'as pas à chercher dans trois champs

Si tu veux continuer avec ta solution, il faut que tu fasses 3 jointures avec 3 fois la table MED mais avec trois alias différents.

hbenyoussef, il y a 7 ans

la solution la plus conne est :

select p.date, (select m.nom from med m where m.id=p.id_med1) as med1, (select m.nom from med m where m.id=p.id_med2) as med2, (select m.nom from med m where m.id=p.id_med3) as med3 from planning q;