Dlaczego nie zacząć od wstępnego zapytania użytkownika i wszystkich napojów, które zaoferowali, oraz od kiedy (nie wiem, czy masz wiele komentarzy na osobę dla danego drinka, czy nie). Następnie znajdź komentarze od wszystkich innych PO takim komentarzu o dacie/godzinie...
To zapytanie powinno być w rzeczywistości szybsze, ponieważ ZACZYNA SIĘ od komentarzy dotyczących napojów tylko JEDNEGO UŻYTKOWNIKA, POTEM wraca do tabeli komentarzy dla tych, które pasują do identyfikatora napoju i czasu granicznego.
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