Bonjour,
J'utilise 4 tables :
1 - table avis (id_avis, nom, prenom)
2 - table bougie (id_bougie, id_avis, date_ajout)
3 - table photo (id_photo, id_avis, date_ajout)
4 - table message (id_message, id_avis, date_ajout)
les champs bougie.id_avis, photo.id_avis, message.id_avis correspondent avec le champ avis.id_avis

Je cherche à récupérer les derniers enregistrements effectués (par date_ajout DESC) sur les tables bougie, photo et message.
Un utilisateur peut insérer une bougie, sans insérer photo et message.
Un utilisateur peut insérer photo, sans insérer bougie et message.
Un utilisateur peut insérer bougie, photo et message...

En clair, comment faire un tri par date_ajout sur les 3 tables bougie, photo et message ?

Acutellement, j'en suis là mais ça ne trie pas correctement :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
SELECT avis.nom, avis.id_avis, avis.prenom
FROM avis, bougie, photo, message WHERE
(avis.id_avis IN
(SELECT bougie.id_avis FROM bougie ORDER BY bougie.date_ajout DESC)) OR
(avis.id_avis IN
(SELECT photo.id_avis FROM photo ORDER BY photo.date_ajout DESC)) OR
(avis.id_avis IN
(SELECT message.id_avis FROM message ORDER BY message.date_ajout DESC))
AND (avis.id_avis = bougie.id_avis OR avis.id_avis = photo.id_avis OR avis.id_avis = message.id_avis)
AND bougie.valid = 1 AND photo.valid = 1 AND message.valid = 1
GROUP BY avis.nom
ORDER BY bougie.date_ajout DESC, photo.date_ajout DESC, message.date_ajout DESC
LIMIT 10
Merci d'avance de votre aide.