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

Zamów wynik z grupy Mysql według

  • Korzystanie z JOIN

i zapytanie z GROUP BY aby uzyskać maksymalny identyfikator dla każdej kategorii (chyba chcesz wiersz z maksymalnym identyfikatorem dla każdej kategorii, prawda?)

SELECT e.id
     , e.title
     , e.created
     , e.updated
     , e.category
     , e.content
FROM entries e
JOIN
    ( SELECT max(id) AS maxid
      FROM entries
      GROUP BY category
    ) AS cat
ON e.id = cat.maxid
  • Korzystanie z IN

i zapytanie, aby uzyskać maksymalny identyfikator dla każdej kategorii

SELECT id
     , title
     , created
     , updated
     , category
     , content
FROM entries
WHERE id IN
    ( SELECT max(id)
      FROM entries
      GROUP BY category
    )
  • Korzystanie z DOWOLNEGO

i skorelowane podzapytanie

SELECT e.id
     , e.title
     , e.created
     , e.updated
     , e.category
     , e.content
FROM entries e
WHERE e.id >= ANY
    ( SELECT cat.id
      FROM entries cat
      WHERE e.category = cat.category
    )
  • Korzystanie NIE ISTNIEJE

i skorelowane podzapytanie

SELECT e.id
     , e.title
     , e.created
     , e.updated
     , e.category
     , e.content
FROM entries e
WHERE NOT EXISTS
    ( SELECT 1
      FROM entries cat
      WHERE cat.id > e.id
        AND e.category = cat.category
    )


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL - wydajność w varchar vs. int

  2. hibernate, mysql, glassfish v3 i źródło danych JTA

  3. Najlepszy sposób na sprawdzenie, czy mysql_query zwrócił jakieś wyniki?

  4. Utwórz nową bazę danych MySQL za pomocą Workbencha

  5. Załaduj dane do pliku MySQL MacOS