Problee de requete sur 3 tables [Résolu]

Signaler
Messages postés
61
Date d'inscription
mardi 10 avril 2007
Statut
Membre
Dernière intervention
5 avril 2011
-
Messages postés
61
Date d'inscription
mardi 10 avril 2007
Statut
Membre
Dernière intervention
5 avril 2011
-
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

Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
26
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
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
26
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
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
23
bonjour,

je déplace vers sqlfr.com

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

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'
Messages postés
61
Date d'inscription
mardi 10 avril 2007
Statut
Membre
Dernière intervention
5 avril 2011

Ca marche au poil encore merci =)
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
26
Salut

c'etait quoi le probleme ou la solution que tu as pris.
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
26
Salut

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

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(*)