Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Subconsulta MySQL com variável de dados de consulta principal


Por que não começar com uma pré-consulta do usuário e todas as bebidas que eles ofereceram comentários e a partir de que horas (não sei se você tem vários comentários por pessoa para qualquer bebida ou não). Então, encontre comentários de todos os outros DEPOIS do seu comentário de data/hora...

Essa consulta deve ser realmente mais rápida, pois está COMEÇANDO com apenas os comentários de bebida de UM USUÁRIO como base, ENTÃO volta para a tabela de comentários para aqueles que correspondem ao ID da bebida e ao horário de corte.
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