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

MySQL-underforespørgsel med hovedforespørgselsdatavariabel

Hvorfor ikke starte med en forespørgsel på brugeren og alle de drinks, de har tilbudt kommentarer og fra hvilket tidspunkt (ved ikke, om du har flere kommentarer pr. person for en given drink eller ej). Find derefter kommentarer fra alle andre EFTER sådanne af din dato/tidspunkt kommentar...

Denne forespørgsel burde faktisk være hurtigere, da den STARTER med kun EN BRUGERs drinkkommentarer som grundlag, og går SÆT tilbage til kommentartabellen for dem, der matcher drinks-id'et og afbrydelsestidspunktet.

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


  1. Lær om, hvordan du bruger SQL Server Management Studio

  2. Oplev typer på PL/SQL-pakkeniveau ved hjælp af Oracle-ordbogsvisninger

  3. PostgreSQL fuldtekstsøgning og trigramforvirring

  4. Hvad er den maksimale rækkevidde af varchar i MySQL?