problème sur une requête mysql
5 messages
• Page 1 sur 1
- atomikado
- WRInaute discret

- Messages: 160
- Inscription: 22 Sep 2003
problème sur une requête mysql
Bonjour,
Admettons une table 'membres' reliée à une table 'annnonces' par un champ appelé 'id_membre'
Chaque membre peut avoir plusieurs annonces.
Dans la table 'membres', j'enregistre l'id en auto_increment, le prénom et le nom du membre
Dans la table 'annonces', j'enregistre l'id du membre (id_membre), et la date de l'annonce (date_annonce) et le texte de l'annonce (texte)
En mysql, je veux récupérer le nom et le prénom de chaque membre, ainsi que la dernière annonce publiée par chaque membre
Je fais :
SELECT membres.prenom, membres.nom, MAX(annonces.date_annonce), annonces.texte
FROM annonces
LEFT JOIN membres ON membres.id=annonces.id_membre
GROUP BY membres.id
Le problème, c'est que cela me sélectionne bien la date de la dernière annonce, mais le texte de la première annonce publiée par le membre !!!
Comment dois je faire pour récupérer le texte de la dernière annonce ? (en 1 seule requète si possible)
Merci !
Admettons une table 'membres' reliée à une table 'annnonces' par un champ appelé 'id_membre'
Chaque membre peut avoir plusieurs annonces.
Dans la table 'membres', j'enregistre l'id en auto_increment, le prénom et le nom du membre
Dans la table 'annonces', j'enregistre l'id du membre (id_membre), et la date de l'annonce (date_annonce) et le texte de l'annonce (texte)
En mysql, je veux récupérer le nom et le prénom de chaque membre, ainsi que la dernière annonce publiée par chaque membre
Je fais :
SELECT membres.prenom, membres.nom, MAX(annonces.date_annonce), annonces.texte
FROM annonces
LEFT JOIN membres ON membres.id=annonces.id_membre
GROUP BY membres.id
Le problème, c'est que cela me sélectionne bien la date de la dernière annonce, mais le texte de la première annonce publiée par le membre !!!
Comment dois je faire pour récupérer le texte de la dernière annonce ? (en 1 seule requète si possible)
Merci !
- jexl
- WRInaute discret

- Messages: 224
- Inscription: 23 Juin 2005
Hello, voici ce que j'aurai fait :
@+
- Code: Tout sélectionner
SELECT
M.prenom, M.nom,
A.date_annonce, A.texte
FROM
membres M
LEFT JOIN
(SELECT
date_annonce, texte
FROM annonces
ORDER BY
date_annonce DESC) A
ON
M.id = A.id_membre
@+
- duplex13
- WRInaute discret

- Messages: 170
- Inscription: 30 Juin 2005
Si c'est avec mysql 5, l'utilisation des sous-requêtes est possible :
SELECT M1.prenom, M1.nom, A1.date_annonce, A1.texte
FROM annonces A1, membres M1
Where M1.id=A1.id_membre
And A1.date_annonce = (Select Max(A2.date_annonce) From annonces A2 Where A2.id_membre = M1.id)
cf Sous-requêtes corrélées :
http://dev.mysql.com/doc/refman/5.0/fr/ ... eries.html
SELECT M1.prenom, M1.nom, A1.date_annonce, A1.texte
FROM annonces A1, membres M1
Where M1.id=A1.id_membre
And A1.date_annonce = (Select Max(A2.date_annonce) From annonces A2 Where A2.id_membre = M1.id)
cf Sous-requêtes corrélées :
http://dev.mysql.com/doc/refman/5.0/fr/ ... eries.html
5 messages
• Page 1 sur 1
Lectures recommandées sur ce thème :
- problème requête mysql
- MySQL : probleme de requete
- probleme de requete mysql
- Requete Mysql probleme doublons
- MySQL problème de requete LEFT JOIN
- [mysql] trier les résultats d'une requête selon une table non liée à la requête
- Requete Mysql ?
- requete Mysql
- Requete MySQL et order
- Requete MYSQL problématique
- Google API : guide de développement de l'API Google
- Gestion des langues et des sessions en PHP / MySQL
- Passage à l'heure d'été/hiver sur un forum phpBB 3
- Les différents systèmes de mise en cache des données
- Nombre moyen de mots par requête : statistiques AOL Août 2006
- Nombre de clics dans les pages de résultats : statistiques AOL Août 2006
- Script de mise en cache des pages (PHP MySQL)
- GoogleStats : analyse temps réel des visites de Google sur votre site
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités
