Problee de requete sur 3 tables

Résolu
cs_6miK
Messages postés
61
Date d'inscription
mardi 10 avril 2007
Statut
Membre
Dernière intervention
5 avril 2011
- 7 mai 2007 à 22:21
cs_6miK
Messages postés
61
Date d'inscription
mardi 10 avril 2007
Statut
Membre
Dernière intervention
5 avril 2011
- 10 mai 2007 à 09:42
Bonsoir,
j'aimerais faire une requête sur 3 tables différentes pour  pouvoir avoir tout les clients d'un fournisseur grâce à la table produit qui connait le numéro du client et le numero du fournisseur.
Ma 1ère requête permet de faire ceci met avec répétition et la 2ème ne garde que le nom du client.
Si quelqu'un pouvait m'aiguiller puisqu'il n'est pas possible de mettre plisieurs élément dans un distinct.
Merci d'avance

SELECT
DISTINCT
nomC




FROM
client
,
produit
,
fournisseur




WHERE
client
.
numero_client
=
produit
.
numero_client




AND
fournisseur
.
numero_fournisseur
=
produit
.
numero_fournisseur




AND
nomF
=
'xxxx'




SELECT








FROM
client
,
produit
,
fournisseur




WHERE
client
.
numero_client
=
produit
.
numero_client




AND
fournisseur
.
numero_fournisseur
=
produit
.
numero_fournisseur




AND
nomF
=
'xxxx'

8 réponses

nhervagault
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
35
8 mai 2007 à 23:27
Salut

Select client.* from fournisseur
Inner join produit
on produit.fournisseur_id = fournisseur.fournisseur_id
inner join client
on client.client_id = produit.client_id

Where fournisseur_id = 150

Avec une syntaxique inner join
1 --> la reponse doit etre correcte.
2 --> la requete est plus opimiser

car la requete au where est une requete avec un produit cartesien

Je prend tout les elements de la table A que j'associe avec ceux de la table B
--> A*B enregistrement et apres que je filtre avec le where
C'est pas trop optimisé dans cette requete

Bon SQL
3
nhervagault
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
35
9 mai 2007 à 20:46
Select distinct client.* from fournisseur
Inner join produit
on produit.numero_fournisseur = fournisseur.numero_fournisseur
inner join client
on client.numero_client = produit.numero_client
Where nomF = 'xxxx'

Devrait fonctionner sinon il faut utiliser des group by.

Select client.numero_client from fournisseurmer
Inner join produit
on produit.numero_fournisseur = fournisseur.numero_fournisseur
inner join client
on client.numero_client = produit.numero_client
Where nomF = 'xxxx'
GROUP BY numero_client
3
jesusonline
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Membre
Dernière intervention
13 octobre 2010
29
8 mai 2007 à 14:01
bonjour,

je déplace vers sqlfr.com

<hr />Cyril - MSP - MCTS ASP.net & SQL
0
cs_6miK
Messages postés
61
Date d'inscription
mardi 10 avril 2007
Statut
Membre
Dernière intervention
5 avril 2011

9 mai 2007 à 09:39
ceci est nettement mieu car je ne recupère que ce qui concerne le client.
Mais, cela ne retire pas les répétition de client ;(
et je ne voit toujours pas comment faire puisqu'il n'est pas possible de mettre plisieurs élément dans un distinct.

Select client.* from fournisseur
Inner join produit
on produit.numero_fournisseur = fournisseur.numero_fournisseur
inner join client
on client.numero_client = produit.numero_client
Where nomF = 'xxxx'
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_6miK
Messages postés
61
Date d'inscription
mardi 10 avril 2007
Statut
Membre
Dernière intervention
5 avril 2011

10 mai 2007 à 09:18
Ca marche au poil encore merci =)
0
nhervagault
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
35
10 mai 2007 à 09:36
Salut

c'etait quoi le probleme ou la solution que tu as pris.
0
nhervagault
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
35
10 mai 2007 à 09:36
Salut

c'etait quoi le probleme ou la solution que tu as pris.
0
cs_6miK
Messages postés
61
Date d'inscription
mardi 10 avril 2007
Statut
Membre
Dernière intervention
5 avril 2011

10 mai 2007 à 09:42
Salut, j'ai choisit :

Select distinct client.* from fournisseur
Inner join produit
on produit.numero_fournisseur = fournisseur.numero_fournisseur
inner join client
on client.numero_client = produit.numero_client
Where nomF = 'xxxx'

en fait je restais borné pour le distinct.
Comme on fait distinct (nomC) par exemple, je cherchais une synthaxe du genre distinct(*)
0