Jointure PhpMyAdmin de 3 tables
congela
Messages postés
23
Date d'inscription
Statut
Membre
Dernière intervention
-
congela Messages postés 23 Date d'inscription Statut Membre Dernière intervention -
congela Messages postés 23 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
j'ai un petit problème technique sur PhpMyAdmin:
j'ai 3 tables: utilisateur, materiel, lien
mes clefs primaires sont: idutilisateur dans utilisateur
et idmateriel dans materiel
mes clefs étrangères sont: idutilisateur dans lien
et idmateriel dans lien
j'ai fait les jointures en innoDB
mais le probleme,
quand je fais la requete
il m'affiche alors tous les produits....
pourtant dans la table lien:
idutilisateur1 => idmateriel=2
le probleme ne viendrait-il pas, du moment où j'insere mes valeurs de idmateriel dans la table lien, il me propose: -1
-2
-3
1-
2-
3-
de même pour idutilisateur où il me fait la même chose.....
help...
j'ai un petit problème technique sur PhpMyAdmin:
j'ai 3 tables: utilisateur, materiel, lien
mes clefs primaires sont: idutilisateur dans utilisateur
et idmateriel dans materiel
mes clefs étrangères sont: idutilisateur dans lien
et idmateriel dans lien
j'ai fait les jointures en innoDB
mais le probleme,
quand je fais la requete
SELECT nomproduit FROM utilisateur, lien, materiel WHERE utilisateur.idutilisateur=1 AND lien.idutilisateur=1
il m'affiche alors tous les produits....
pourtant dans la table lien:
idutilisateur1 => idmateriel=2
le probleme ne viendrait-il pas, du moment où j'insere mes valeurs de idmateriel dans la table lien, il me propose: -1
-2
-3
1-
2-
3-
de même pour idutilisateur où il me fait la même chose.....
help...
A voir également:
- Jointure PhpMyAdmin de 3 tables
- Phpmyadmin ovh - Forum PHP
- Clé étrangère phpmyadmin ✓ - Forum MySQL
- Localhost/phpmyadmin ✓ - Forum PHP
- Accédé à phpmyadmin??? ✓ - Forum Linux / Unix
- Acceder au localhost phpmyadmin en local depuis un autre poste - Forum Ubuntu
2 réponses
Bonjour,
Le problème, c'est que tu n'as pas indiqué dans ta requête sur quel champ se fait la jointure.
Lorsque tu fais une requête sur plusieurs tables, par défaut il en fait le produit cartésien ; il faut alors restreindre les lignes obtenues en disant que la clé étrangère est égale à l'identifiant.
Voici donc (en utilisant la syntaxe JOIN, qui est plus parlante je trouve)
Xavier
Le problème, c'est que tu n'as pas indiqué dans ta requête sur quel champ se fait la jointure.
Lorsque tu fais une requête sur plusieurs tables, par défaut il en fait le produit cartésien ; il faut alors restreindre les lignes obtenues en disant que la clé étrangère est égale à l'identifiant.
Voici donc (en utilisant la syntaxe JOIN, qui est plus parlante je trouve)
SELECT nomproduit FROM utilisateur u INNER JOIN lien l ON l.idutilisateur = u.idutilisateur INNER JOIN materiel m ON m.idmateriel = l.idmateriel WHERE u.idutilisateur = 1
Xavier