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 :
Merci d'avance de votre aide.
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
Partager