Fusioner 3 requete select avec même clause et limit
Lakvon03
-
jordane45 Messages postés 30426 Date d'inscription Statut Modérateur Dernière intervention -
jordane45 Messages postés 30426 Date d'inscription Statut Modérateur Dernière intervention -
Bonsoir :)
Je sais pas vraiment si c'est possible mais dans un souci de performance j'aimerais savoir si il était possible de fusionner 3 requête "select" en une seule sachant que 2 d'entre elle ont un "LIMIT". elle ont toutes les 3 la même clause. Si oui, un exemple serait le bienvenu car je galère pas mal. merci d'avance.
mes 3 requêtes :
Je sais pas vraiment si c'est possible mais dans un souci de performance j'aimerais savoir si il était possible de fusionner 3 requête "select" en une seule sachant que 2 d'entre elle ont un "LIMIT". elle ont toutes les 3 la même clause. Si oui, un exemple serait le bienvenu car je galère pas mal. merci d'avance.
mes 3 requêtes :
SELECT id , username, avatar FROM users WHERE id = '$id'
SELECT comments_text FROM comments WHERE comments_user_id = '$id' ORDER BY comments_date DESC LIMIT 10
SELECT articles_name , articles_text , articles_note FROM articles WHERE articles_user_id = '$id' ORDER BY articles_date DESC LIMIT 5
1 réponse
-
Bonjour,
Avec du JOIN pour les USERS
et un UNION pour lier deux requêtes ...
Voila la requête:SELECT 'ARTICLE' as TYPE , articles_name as NAME , articles_text as TEXT , articles_note as NOTE FROM articles A LEFT JOIN users U ON U.id = A.articles_user_id WHERE articles_user_id = '$id' ORDER BY articles_date DESC LIMIT 5 UNION SELECT 'COMMENTAIRE' as TYPE , '' as NAME , comments_text as TEXT , '' as NOTE FROM comments C LEFT JOIN users U ON U.id = C.comments_user_id WHERE comments_user_id = '$id' ORDER BY comments_date DESC LIMIT 10