Fusioner 3 requete select avec même clause et limit

Fermé
Lakvon03 - Modifié par Lakvon03 le 11/05/2016 à 22:04
jordane45 Messages postés 38198 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 2 juin 2024 - 12 mai 2016 à 10:13
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 :

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

jordane45 Messages postés 38198 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 2 juin 2024 4 675
12 mai 2016 à 10:13
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


0