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   -
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

  1. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
     
    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