Page 1 sur 1

jointure externe

Posté : 20 mai 2014, 23:42
par jojo28
Bonjour, j' ai actuellement 3 tables et voici leur caractéristiques

membre joue instruments
id_membre PK id_membre id_instrument
id_instrument

J' aimerais afficher dans une page lid des instruments correspondant a lid du membre voici ce que j' ai essayer de faire
"SELECT * FROM membre INNER JOIN joue ON id_membre = id_membre INNER JOIN instruments ON id_instrument = id_instrument"

mais ceci ne marche pas merci de votre aide

Re: jointure externe

Posté : 21 mai 2014, 10:19
par sirakawa
J'ai quelque chose du même genre
tables préfixées par kalig:
dico :
id
mot
dico_dictees
id
mot_referent (valeurs gréées en même temps que id de dico)

select * from kalig_dico join kalig_dico_dictees on kalig_dico_dictees.mot_referent = kalig_dico.id;
Ce qui cahnge, c'est Inner join, ou outer join

Re: jointure externe

Posté : 21 mai 2014, 10:31
par Mazarini
Pour compléter, dans "id_membre = id_membre" il faut indiquer les tables utilisées puisque id_membre est présent dans 2 tables, sinon mysql ne sait pas lequel des 2 prendre. Idem pour l'autre jointure.

Tu dois certainement avoir un message d'erreur si tu fais ta requête dans phpmyadmin. Ca pourrait te donner une piste. Sinon, avec PHP il est possible de connaitre le message avec des fonctions comme mysql_error() (à adapter suivant le jeu de fonctions utilisées (mysql, mysqli ou pdo).

Re: jointure externe

Posté : 21 mai 2014, 10:57
par moogli
salut,

joj, c'est vraiment pas clair l'info de tes table la.

Mais si tu souhaite savoir de quel instrument joue un membre il suffit de faire un select sur la table "joue" avec en prédicat l'id du membre

pour faciliter la compréhension tu peux fournir un mcd
2014-05-21_105619.png

@+

Re: jointure externe

Posté : 21 mai 2014, 13:03
par jojo28
je ne comprend absolument pas comment je peux faire.
Est ce que si je fais une jointure si deux tables au lieu de deux sa marche ?
Merci de votre aide

Re: jointure externe

Posté : 21 mai 2014, 13:14
par jojo28
$reponse = $bdd->query("SELECT * FROM membre INNER JOIN joue ON membre.id_membre = joue.id_membre INNER JOIN instruments ON joue.id_instrument = instruments.id_instrument WHERE username='{$_SESSION['pseudo']}'");

Voici ce que j' ai essayer mais sa ne marche toujours pas

Re: jointure externe

Posté : 21 mai 2014, 14:45
par jojo28
C' est bon ma jointure fonctionne

$reponse = $bdd->query("SELECT nom, prenom, date, statut, telephone1, telephone2, adressemail, ville1, codePostal1, Adresse1, ville2, codePostal2, Adresse2, username, password, avatar, nom_instrument FROM membre INNER JOIN joue ON membre.id_membre = joue.id_membre INNER JOIN instruments ON joue.id_instrument = instruments.id_instrument WHERE username='{$_SESSION['pseudo']}'");

Voici le code