Mysql
 sql >> Database >  >> RDS >> Mysql

MySQL Subquery con la variabile di dati della query principale

Perché non iniziare con una prequery dell'utente e tutte le bevande che ha offerto commenti e a che ora (non so se hai più commenti per persona per un determinato drink o meno). Quindi, trova i commenti di tutti gli altri DOPO il tuo commento di data/ora...

Questa query dovrebbe effettivamente essere più veloce poiché INIZIA con un solo commento sul drink di UN UTENTE come base, POI torna alla tabella dei commenti per quelli che corrispondono all'ID drink e al tempo 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