- Join verwenden
und eine Abfrage mit GROUP BY
um die maximale ID für jede Kategorie zu erhalten (ich schätze, Sie wollen die Zeile mit der maximalen ID für jede Kategorie, nicht wahr?)
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
- Eingabe verwenden
und eine Abfrage, um die maximale ID für jede Kategorie zu erhalten
SELECT id
, title
, created
, updated
, category
, content
FROM entries
WHERE id IN
( SELECT max(id)
FROM entries
GROUP BY category
)
- Beliebig verwenden
und eine korrelierte Unterabfrage
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
)
- Verwendung von NOT EXISTS
und eine korrelierte Unterabfrage
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
)