Bonjour,

Ça fait quelques jours que je galère avec mon piètre niveau en mysql alors je viens vers vous en espérant que vous aurez une solution à mon problème.

J’ai trois tables:

Une table "produits" comportant les champs suivants:
--------------------------------
id_produit | designation |
---------------------------------
1 | pommes |
2 | poires |
3 | scoubidoubidou |
---------------------------------

une table "prix" comportant les champs suivants:
------------------------------------------------
id_prix | id_produit | prix | id_distributeur |
------------------------------------------------
1 | 2 | 3 | 1 |
2 | 3 | 2 | 3 |
3 | 1 | 2 | 2 |
------------------------------------------------

une table "distributeurs"
--------------------------------
id_distributeur | localisation |
--------------------------------
1 | 2 |
2 | 1 |
3 | 3 |
--------------------------------

Je souhaiterai afficher un tableau qui m’indique les derniers prix enregistrés par produit et par localisation

Voici ce que j’ai tenté (entres autres):

Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
SELECT prix.id_distributeur, prix.produits, prix.prix, distributeurs.localisation, produits.id_produit
FROM prix 
INNER JOIN produits ON produits.id_produit = prix.id_produit
INNER JOIN (SELECT prix AS prix1 FROM prix INNER JOIN distributeurs ON (prix.id_distributeur = distributeur.id_distributeur AND distributeur.id_distributeur = 1) ORDER by id_prix DESC)) AS prixdistributeur1 
INNER JOIN (SELECT prix AS prix2 FROM prix INNER JOIN distributeurs ON (prix.id_distributeur = distributeur.id_distributeur AND distributeur.id_distributeur = 1) ORDER by id_prix DESC)) AS prixdistributeur2 
INNER JOIN (SELECT prix AS prix2 FROM prix INNER JOIN distributeurs ON (prix.id_distributeur = distributeur.id_distributeur AND distributeur.id_distributeur = 1) ORDER by id_prix DESC)) AS prixdistributeur3
GROUP BY prix.id_produit ";

Evidemment, ça ne marche pas du tout (on ne rigole pas ), est-ce que vous pouvez m’aiguiller ?

Loïc