Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Grupa mySQL według nazwy użytkownika

Myślę, że tego właśnie szukasz.

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

po prostu zamień „Tomek” na swoją zmienną

Spowoduje to zwrócenie ostatnich 10 użytkowników, którzy wysłali wiadomość do „Toma” lub „Toma”, do których wysłano wiadomość.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Nie można załadować stref czasowych?

  2. 2 sposoby na wyświetlenie wszystkich procedur składowanych w MySQL

  3. Instrukcja wyboru MySQL z CASE lub IF ELSEIF? Nie wiesz, jak uzyskać wynik

  4. Dla porównania należy wziąć pod uwagę końcowe białe znaki w varchar

  5. Play 2.4 - Slick 3.0.0 - DELETE nie działa