Sos Requet Jointure entre 2 tables

Fermé
moitropdebutant Messages postés 3 Date d'inscription dimanche 12 octobre 2008 Statut Membre Dernière intervention 24 novembre 2008 - 29 oct. 2008 à 09:37
 MoiTropDebutant - 29 oct. 2008 à 20:30
Bonjour,

Je suis AutoDidact et je me lance pour la 1ere fois ds 1 forum d'AIde : Merci d'Avance;

Voila mon problème:

Permet à un internaute de commander des Articles à paritr d'une liste de Magasins que j'ai ds ma Bdd,
Pour cela il doit savoir si dans sa ville il y a des magasins qui livrent puis afficher la liste des magasins qui livrent ds sa ville

J'ai : 2 tables

Villes (id_ville, nom_ville) et Magasins (id_mag, nom_mag)
Je pense qu'il faut rajouter un champ ds Table Magasin ( pour lien -jointure)

Mais je me suis mis à potasser Merise (3 à 4 mois d'apprentissage en Autodidact et c'était Dur Dur
pour mon MCD ect et je suis complétement Bloqué ds une Relation entre deux tables car la relation est de 1,n des deux cotés

A SAVOIR QUE :

- une Villes à (0,n ) Magasins qui livrent
- un Magasin livrent (1,n) villes

Relation entre les cardinalités de (o,n) et (1,n)

Requet d'après moi : SELECT nom_mag From Magasins, villes INNER JOIN id_mag = id_ville

C'es tout ; et là malgré les tonnes de cours , je n'a ipas trouvé de réponse ou simplement je dois mal chercher !!

Merci- Merci Encore à Tous
"Imaginer que c'est Grace aux Forums et aux EXCELLENT Cours de Site commme Celui-ci que j'ai vraiment trouvé ma Passion "
----- J' attend avec Impatience une petite Réponse-Solution de votre PART ou un lien ou une Idée
qui puisse me faire Avancer dans mon petit progres !
A voir également:

3 réponses

SebManfred Messages postés 484 Date d'inscription mardi 28 août 2007 Statut Membre Dernière intervention 20 mai 2011 128
29 oct. 2008 à 09:46
à mon sens, il faut établir des tables intermédiaires, sachant que le principal probleme semble etre que tu te mélange les pinceaux entre le fait qu'un magazin est dans une ville (locallisation géographique) et qu'il couvre plusieurs villes (couverture)
la localisation géographique est à associer au magasin (à moins que ca soit un magasin qui ait des enseignes dans plusieurs villes, mais dans ce cas, il faudrait peut-etre prévoir une table enseigne) donc un magasin (ou une enseigne) n'a qu'une seule localisation, mais peut avoir plusieurs villes à couvrir, ce qui peut se gérer par une table couverture

je t'ai pas trop embrouillé?
0
MoiTropDebutant
29 oct. 2008 à 20:05
Bonsoir, Mr SebManFred,

Je viens d'Ouvrir ma Boite Mail et j'y trouve 3 réponse à ma question qui me trotte depuis 6 mois , touT cela pour Dire Franchement Un Grand Merci pour ta Réponse aussi Rapide et j'y bosse !

Je te souhaite Une Excelente Soirée à toi et aux Tiens !

A+
0
Mikey_UFC Messages postés 312 Date d'inscription jeudi 8 mars 2007 Statut Membre Dernière intervention 2 août 2010 1
29 oct. 2008 à 09:47
Je pense qu'il te faut une 3ème table que tu peux appeler livraison, livrer ou ville_magasin ( pour montrer qu'elle fait le lien ) dans laquelle tu auras :
- id_mag
- id_ville

la requête pour avoir tous les magasins qui livrent une ville deviendra :
SELECT * FROM MAGASIN M INNER JOIN VILLE_MAGASIN VM ON VM.id_mag = M.id_mag
WHERE id_ville = code_de_la_ville_choisi


Code que tu devrais normalement avoir quand tu affiches la liste des villes.

Par contre, il faudra remplir la table pour savoir quelles villes sont livrées par tel ou tel magasin.
Si ce n'est pas ce que tu veux, explique en détail, et je te donnerai une structure adaptée à ton problème.
0
MoiTropDebutant
29 oct. 2008 à 20:21
Bonsoir a toi Mickey_UFC

Merci beaucoup pour ta réponse simple et rapide .
En fait c'est exactement ce qu'il me faut alors je m'y met et je te répond Merci Encore
Super Cool , Bonne soirée et je tiens au courant avec Plaisir
0
Gwendo69 Messages postés 147 Date d'inscription lundi 29 septembre 2008 Statut Membre Dernière intervention 28 juin 2013 13
29 oct. 2008 à 10:02
Salut,

Alors en fait tu peux pas faire directement "SELECT nom_mag From Magasins, villes INNER JOIN id_mag = id_ville".

Lorsque tu passes du MCD au MLD et que tu as 0,n/1,n , 0,n/0,n ou 1,n/1,n, en gros quand les deux se terminent par n, tu dois faire une table 'intermédiaire' en quelque sorte qui a pour clés primaires ET étrangères les deux clés des tables liés (id_ville et id_mag). Tu lui donne le nom que tu veux.

Exemple : Villes (id_ville, nom_ville),
Magasins (id_mag, nom_mag) et
Villes_Magasins (#id_ville, #id_mag). le '#' signifie que c'est une clé étrangère.

Tu fais donc DEUX liaisons. Une entre Villes et Villes_Magasins, et une autre entre Villes_Magasins et Magasins.

J'espère que c'est un peu comprehensible, si tu as encore des pb n'hesite pas. Bon courrage pour la suite.
0
MoiTropDebutant
29 oct. 2008 à 20:30
Bonsoir Gwendo69 ,

J'ai bien pris note de ce que tu m'as conseillé Alorqs je tiens a te remercier pour ta réponse Rapide et Clair
Je te souhaite une bonne Soirée et Merci Encore
Bye !
0