Précédent   Forum des professionnels en informatique > Bases de données > Langage SQL
Langage SQL Forum d'entraide sur le langage SQL et sur les questions liées à la conception de schéma (DDL). Cours SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 13/01/2012, 10h26   #1
Candidat au titre de Membre du Club
 
Homme
Étudiant
Inscription : mai 2011
Messages : 38
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mai 2011
Messages : 38
Points : 13
Points : 13
Par défaut select sur une table de jointure

bonjour j'ai 3 tables : client, produit , catégorie, vendeur.

j' ai créé ces 4 tables puis une table de jonctions avec les clé de ces 4 tables. ceci parceque un vendeur(utilisateur) peut être affecté à 1 ou plusieurs clients à un ou plusieurs produits du client et 1 ou plusieur categorie du produit.

mon probleme c'est le select !
exemple je veux selectionner tous les clients de l'utilisateurs je fais :

Code :
1
2
3
4
5
 
SELECT * FROM CLIENT
WHERE IDCLIENT IN
                           SELECT IDCLIENT FROM LaTableDeJonction
                           WHERE IDUTILISATEUR = 'id utilisateur'
cette requête marche pas car me sélectionne les lignes des "autres croisement"

j'aimerai savoir qu'est ce qu'il faut faire?

Je vous remecie d'avance
infdunord est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/01/2012, 10h47   #2
Membre émérite
 
Homme Tony
Développeur .NET
Inscription : novembre 2010
Messages : 570
Détails du profil
Informations personnelles :
Nom : Homme Tony
Localisation : France

Informations professionnelles :
Activité : Développeur .NET

Informations forums :
Inscription : novembre 2010
Messages : 570
Points : 821
Points : 821
La notion de jointure, ça te parle ?
__________________
Le Porc est un loup pour le Porc.
asmduty est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/01/2012, 10h52   #3
Expert Confirmé
 
Homme
Inscription : mai 2002
Messages : 1 654
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : mai 2002
Messages : 1 654
Points : 2 656
Points : 2 656
Bonjour,


J'ai relu 3 fois et je n'ai toujours pas compris votre modèle.

=> décrivez un peu mieux les realtions entre vos tables et cette notion "d'utilisateur".
=> donnez un petit jeu de donnée qui recoupe l'entrée et la sortie de votre demande.
punkoff est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/01/2012, 10h59   #4
Candidat au titre de Membre du Club
 
Homme
Étudiant
Inscription : mai 2011
Messages : 38
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mai 2011
Messages : 38
Points : 13
Points : 13
Exemple :

l'administrateur crée une utilisateur (vendeur) l'affecte à des clients (exemple Renault ) puis un ou des produits du clients (exemple voiture) puis à un ou des categorie de produit exemple (berline). Sachant que les produits les categories et les clients sont déja crée à l'engistrement j'enregistre les clés dans la table de jonctions en ajoutant l'ID du vendeur.

je vous remercie d'avance
infdunord est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/01/2012, 11h17   #5
Expert Confirmé
 
Homme
Inscription : mai 2002
Messages : 1 654
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : mai 2002
Messages : 1 654
Points : 2 656
Points : 2 656
Reprenons,

Les règles du forum c'est ici : http://www.developpez.net/forums/a69...gage-sql-lire/

Donc d'un point de vu MCD :
Client-(0,n)-----GERE-------(0,n)-VENDEUR

C'est bien ça ?

Du coup pour le MPD :
client(clientId, .....)
vendeur(vendeurId, ....)
A_CLI_VEN(#vendeurId,#clientId)

C'est toujours bon ?


Dans ces conditions, pour retrouver tous les clients gérés par un vendeur, votre requête de départ est bonne (il manque des parenthèses par contre je pense)

Code :
1
2
3
4
 
SELECT clientId
FROM client a
WHERE EXISTS (SELECT 1 FROM A_CLI_VEN b WHERE a.clientId = b.clientId AND b.vendeurId = 'XXXX')
Donc si ca ne marche pas comme vous le voulez c'est que votre besoin est autre ou que votre modélisation différere de ce que je vous présente.
punkoff est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h20.


 
 
 
 
Partenaires

Hébergement Web