Mysql
 sql >> Base de données >  >> RDS >> Mysql

Sous-requête MySQL avec la variable de données de requête principale

Pourquoi ne pas commencer par une requête préalable de l'utilisateur et de toutes les boissons qu'il a proposées et à quelle heure (je ne sais pas si vous avez plusieurs commentaires par personne pour une boisson donnée ou non). Ensuite, trouvez les commentaires de tous les autres APRÈS votre commentaire de date/heure...

Cette requête devrait en fait être plus rapide car elle COMMENCE avec les commentaires de boisson d'UN SEUL UTILISATEUR comme base, PUIS revient au tableau des commentaires pour ceux qui correspondent à l'ID de boisson et à l'heure limite.

SELECT STRAIGHT_JOIN
      dc.*
   from 
       ( select
               drinkID,
               max( datetime ) UserID_DrinkCommentTime
            FROM 
               drinkComments 
            WHERE
               userID = 1
            group by
               drinkID ) PreQuery
       join DrinkComments dc
         on PreQuery.DrinkID = dc.DrinkID
         and dc.datetime > PreQuery.UserID_DrinkCommentTime
   order by
      dc.DateTime desc