sql >> Databasteknik >  >> RDS >> Mysql

Beställ resultat från Mysql-gruppen av

  • Använda JOIN

och en fråga med GROUP BY för att få maximalt ID för varje kategori (jag antar att du vill ha raden med maximalt ID för varje kategori, eller hur?)

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
  • Använder IN

och en fråga för att få maximalt ID för varje kategori

SELECT id
     , title
     , created
     , updated
     , category
     , content
FROM entries
WHERE id IN
    ( SELECT max(id)
      FROM entries
      GROUP BY category
    )
  • Använder ALLA

och en korrelerad underfråga

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
    )
  • Använder INTE FINNS

och en korrelerad underfråga

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. tinyint(storlek), varchar(storlek):storleksförklaring

  2. Hur man skapar en användare och beviljar behörigheter i Oracle

  3. Skapa en ny Ruby on Rails-applikation med MySQL istället för SQLite

  4. Hur ställer man in ORACLE_HOME-variabeln korrekt på Ubuntu 9.x?