sql >> Database >  >> RDS >> Mysql

mySQL-groep op naam van lid

Ik denk dat dit is wat je zoekt.

SELECT messages.* 
  FROM 
  (SELECT MAX(lastseen) AS lastseen,IF ('Tom' = `from`,`to`,`from`) as otheruser FROM messages
    WHERE 'Tom' IN (`from`,`to`) GROUP BY otheruser
   )
AS latest INNER JOIN messages ON latest.lastseen = messages.lastseen
                             AND (('Tom' = messages.from AND latest.otheruser = messages.to)
                                 OR
                                 ('Tom' = messages.to AND latest.otheruser = messages.from))
ORDER BY messages.lastseen
DESC,`read`='no' limit 10

vervang gewoon 'Tom' door je variabele

Hiermee worden de laatste 10 gebruikers geretourneerd die een bericht naar 'Tom' of 'Tom' hebben gestuurd.




  1. Een telefoonnummer opmaken in SQL Server (T-SQL)

  2. hoe het Blob-gegevenstype te gebruiken in Postgres

  3. Hoe een string in PL/SQL te splitsen?

  4. Het repareren van gaten/hiaten in getallen gegenereerd door Postgres-reeks