cs_6miK
Messages postés61Date d'inscriptionmardi 10 avril 2007StatutMembreDernière intervention 5 avril 2011
-
7 mai 2007 à 22:21
cs_6miK
Messages postés61Date d'inscriptionmardi 10 avril 2007StatutMembreDerniè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
nhervagault
Messages postés6063Date d'inscriptiondimanche 13 avril 2003StatutMembreDernière intervention15 juillet 201137 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
nhervagault
Messages postés6063Date d'inscriptiondimanche 13 avril 2003StatutMembreDernière intervention15 juillet 201137 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
cs_6miK
Messages postés61Date d'inscriptionmardi 10 avril 2007StatutMembreDerniè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'
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_6miK
Messages postés61Date d'inscriptionmardi 10 avril 2007StatutMembreDerniè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(*)