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

MySQL GROUP BY/ORDER BY problem

To nieprawda. Zwróci losowy wiersz. W praktyce jest to często pierwszy wiersz w kolejności klucza podstawowego, ale nie ma gwarancji. Bazy danych inne niż MySQL nie pozwalają na tę praktykę i spowodują zgłoszenie błędu.

W każdym razie jednym ze sposobów na odzyskanie najwyższego identyfikatora nieprzeczytanych wiadomości jest dwukrotne dołączenie do tabeli wiadomości. Drugie dołączenie szuka tylko nieprzeczytanych wiadomości. Na przykład:

SELECT  max(msg.ID) as MaxID
,       messages.from
,       max(unread.ID) as MaxUnreadID
,       users.userName
FROM    users
join    messages msg
on      users.ID = msg.from
        and messages.to = ?
left join    
        messages unread
on      users.ID = unread.from
        and messages.to = ?
        and unread.read = 0
GROUP BY
        users.ID
,       users.userName


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Polecenie odchylenia standardowego w SQL

  2. Jak połączyć dwa zapytania licznikowe do ich stosunku?

  3. Importowanie zi eksportowanie do plików za pomocą wiersza poleceń MySQL

  4. formularz przepustki wybrany do następnej strony

  5. Błąd Play framework 2.0 JPA Mysql:Nie można zbudować EntityManagerFactory