Comment créer la jointure entre trois tables sql
habiba
-
SimonVeille -
SimonVeille -
Bonjour,
Please,je souhaite manupilé trois tables qui sont(client,commande,produit)et comment je peut faire pour qu'un client effectue une commande tout en sachant qu'il peut commande que les produit et par après recuperé le client qui a fait la commande de tel produit j'en ai vraiment besoin.merci pour la bonne compréhension.
Please,je souhaite manupilé trois tables qui sont(client,commande,produit)et comment je peut faire pour qu'un client effectue une commande tout en sachant qu'il peut commande que les produit et par après recuperé le client qui a fait la commande de tel produit j'en ai vraiment besoin.merci pour la bonne compréhension.
A voir également:
- Comment créer la jointure entre trois tables sql
- Comment créer un groupe whatsapp - Guide
- Créer un compte google - Guide
- Comment créer un compte gmail - Guide
- Créer un lien pour partager des photos - Guide
- Comment creer un organigramme - Guide
2 réponses
Bonjour,
Votre table commande a surement les champs [IdCommande, IdClient, IdProduit].
Vous pouvez donc dire qu'une commande, c'est un client qui a choisi un produit. Si une commande comporte plusieurs produits, alors il vous manque une table. Sinon, vous pouvez directement insérer une commande :
Pour IdClient = 1 et IdProduit = 1, et IdCommande en AUTO_INCREMENT :
Pour récupérer toutes les commandes d'un produit, vous pouvez faire :
Donc vous pouvez faire pour récupérer tous les clients qui ont fais une commande qui comporte le produit faire :
(je sais qu'il existe d'autres types de jointures, mais je ne connais pas votre utilisation).
Si vous n'avez pas compris quelque chose, n'hésitez pas, je détaillerai plus :)
Cordialement.
Votre table commande a surement les champs [IdCommande, IdClient, IdProduit].
Vous pouvez donc dire qu'une commande, c'est un client qui a choisi un produit. Si une commande comporte plusieurs produits, alors il vous manque une table. Sinon, vous pouvez directement insérer une commande :
Pour IdClient = 1 et IdProduit = 1, et IdCommande en AUTO_INCREMENT :
INSERT INTO commande VALUES (NULL, 1, 1);
Pour récupérer toutes les commandes d'un produit, vous pouvez faire :
SELECT * FROM commande c INNER JOIN produit p WHERE p.nom LIKE 'produit1';
Donc vous pouvez faire pour récupérer tous les clients qui ont fais une commande qui comporte le produit faire :
SELECT cl.nom FROM produit p INNER JOIN commande INNER JOIN client cl WHERE p.name LIKE 'produit1';
(je sais qu'il existe d'autres types de jointures, mais je ne connais pas votre utilisation).
Si vous n'avez pas compris quelque chose, n'hésitez pas, je détaillerai plus :)
Cordialement.
habiba
oui une commande peut comporter plusieurs produits.merci d'avance
BioK03
Messages postés
655
Date d'inscription
Statut
Membre
Dernière intervention
134
Donc vous avez plus que 3 tables, car c'est impossible. Vous avez donc une relation *..* entre commande et produit, par quoi est-elle symbolisée dans la base de données ?
habiba
>
BioK03
Messages postés
655
Date d'inscription
Statut
Membre
Dernière intervention
par leurs id.
habiba
>
BioK03
Messages postés
655
Date d'inscription
Statut
Membre
Dernière intervention
j'ai utilisé les id comme des indexes
BioK03
Messages postés
655
Date d'inscription
Statut
Membre
Dernière intervention
134
oui, comme tout le monde. Comment stockez-vous alors le fait qu'il y ait plusieurs produits par commande ?
Salut,
c'est déjà au niveau du principe que vous devez être au clair. Le code SQL c"'est le résultat:
En français on a une table client, produit comment noter les commandes?
Avez une table commande qui retient l'identifiant(qui deviens alors une clé étrangère dans la table commande) du client et du ou des produits commandés.
Toujours avec le cerveau(pas celui de l'ordinateur il est plutôt borné) pour avoir une commande qui retiennent le client et le(s) produits il suffit de les recouper:
Commande indique le client, indique le ou les produits.
Sans une bonne conception pas la peine de chercher les réponses en SQL. Ici c'est plutôt simpliste, on a 3 entités distinctes:
CLIENT 0,n COMMANDE
COMMANDE 1,1 CLIENT
COMMANDE 0,n PRODUIT
Un client peut avoir 0 à 'n'(de 1 à une infinité) de commandes
Une commande a toujours un client(et un seul)
Une commande à 0 à 'n' produits (ici 0 pour être plus souple et autoriser une commande sans produit mais c'est dans l'univers du discours(donc çà voir avec le commanditaire) de déterminer si une commande est obligatoirement composée d'au moins un produit ou peut existe avec aucun produit).
c'est déjà au niveau du principe que vous devez être au clair. Le code SQL c"'est le résultat:
En français on a une table client, produit comment noter les commandes?
Avez une table commande qui retient l'identifiant(qui deviens alors une clé étrangère dans la table commande) du client et du ou des produits commandés.
Toujours avec le cerveau(pas celui de l'ordinateur il est plutôt borné) pour avoir une commande qui retiennent le client et le(s) produits il suffit de les recouper:
Commande indique le client, indique le ou les produits.
Sans une bonne conception pas la peine de chercher les réponses en SQL. Ici c'est plutôt simpliste, on a 3 entités distinctes:
CLIENT 0,n COMMANDE
COMMANDE 1,1 CLIENT
COMMANDE 0,n PRODUIT
Un client peut avoir 0 à 'n'(de 1 à une infinité) de commandes
Une commande a toujours un client(et un seul)
Une commande à 0 à 'n' produits (ici 0 pour être plus souple et autoriser une commande sans produit mais c'est dans l'univers du discours(donc çà voir avec le commanditaire) de déterminer si une commande est obligatoirement composée d'au moins un produit ou peut existe avec aucun produit).