Problème avec une jointure

Eléphant du PHP | 135 Messages

23 nov. 2006, 00:52

Bonjour, bonsoir, bonne nuit ?

mon probème est le suivant,

j'ai deux tables

Code : Tout sélectionner

Produit -------- id titre commentaire --------------- id produitId pseudo

Je désire récupèrer les 5 derniers produits ainsi que la dernière personnes qui a laissé un commentaire sur ce produit.

Code : Tout sélectionner

SELECT produit.titre from produit LEFT JOIN commentaire as comment ON produit.id = comment.produitId LIMIT 5
ce pendant ET tout à fait logiquement, il me renvoie tous les commentaires pour chaque produit et non le dernier commentaire.

Ma requête n'est pas bonne, mais je ne vois pas comment limité à 1 ligne pour la jointure.

voilà,

Merci pour votre aide,

et bonne nuit !! :)[/code]

Modérateur PHPfrance
Modérateur PHPfrance | 2575 Messages

23 nov. 2006, 11:28

Essaye ça:

Code : Tout sélectionner

SELECT r0.titre , (SELECT c.pseudo FROM commentaire as c WHERE c.id_produit = r0.id ORDER BY c.id DESC LIMIT 1 ) As personne FROM produit as r0 LIMIT 5
Ce qui veut dire que la personne est un champ determiné par une sous-requête qui extrait le dernier commentaire par tri inverse (ORDER By ... DESC)
NB: Les sous-requêtes sont supportées à partir de MySql 4 et +
--------//////----//---//----//////
-------//---//----//---//----//---//
------//////----//////-----//////
-----||--------||--||---||
Prendre le recul n'est pas une perte de temps.


ps: Affrontez moi dans l'arène

Eléphant du PHP | 135 Messages

23 nov. 2006, 12:24

Bonjour,

oh !

J'était persuadé que les sous requêtes n'étaient possible qu'a partir de mysql 4.1 ... :)

je n'avais même pas essayé, ce qui apparaît être une erreur :)


Merci Sadeq,

bonne journée ;)

EDIT:

je confirme, c'est supporté à partir de la 4.1 :)