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

ORDER BY jeden ID, gdy w jednej tabeli jest więcej takich samych ID

Chcemy najnowszego post na każdym unikalnym wątku, możemy to zrobić przez...

Korzystanie z GROUP BY i HAVING .

SELECT * 
FROM Posts
JOIN Discussions
    on Discussions.discussion_id = Posts.discussion_id
GROUP BY Discussions.discussion_id
HAVING Posts.post_time = max(Posts.post_time)
ORDER BY Posts.post_time DESC

To jest przykład ! Upewnij się, że używasz go do modyfikowania własnych, jest to jednak dość proste. Nie mam bazy danych, aby to przetestować, ale jestem testowany z własnymi danymi i różnymi kolumnami i zadziałało.

Uwaga: Zakłada się, że każdy identyfikator jest identyczny w obu tabelach. Zakłada również, że post_time to pewna wartość czasu, która zwiększa się wraz z nowszym postem (tj. Znacznik czasu SQL).




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wstaw tablicę PDO używając klucza jako nazwy kolumny

  2. Naprawianie luk w identyfikatorze wiersza tabeli mysql po usunięciu niektórych z nich

  3. MySQL odpowiednik funkcji DECODE w Oracle

  4. Błąd:SQLSTATE[42000]:Błąd składni lub naruszenie dostępu z cakePHP

  5. Utwórz kopię zapasową baz danych za pomocą zapytania bez użycia mysqldump