Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL-Unterabfrage mit Hauptabfragedatenvariable

Warum nicht mit einer Vorabfrage des Benutzers beginnen und alle Getränke kommentieren, die er angeboten hat, und ab wann (weiß nicht, ob Sie mehrere Kommentare pro Person für ein bestimmtes Getränk haben oder nicht). Finden Sie dann Kommentare von allen anderen NACH einem solchen Ihres Datums-/Uhrzeit-Kommentars...

Diese Abfrage sollte eigentlich schneller sein, da sie BEGINNT mit nur den Getränkekommentaren EINES BENUTZERS als Grundlage und DANN zurück zur Kommentartabelle für diejenigen geht, die mit der Getränke-ID und der Sperrzeit übereinstimmen.

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