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