Hier habe ich noch ein Workaround für das LIMIT Problem gefunden. Funktioniert leider auch nicht. Damit bekomme ich nur noch ein einziges Ergebnis:
SET @i = 0;
SELECT
a1.artikel_id,
a1.group_id,
a1.artikel_name,
a1.artikel_preis
FROM
artikel a1
WHERE
artikel_preis IN (
SELECT
a2.artikel_preis
FROM
artikel a2
WHERE
a1.group_id = a2.group_id AND
(@i:=(@i+1)) <= 2
ORDER BY
a2.artikel_preis ASC
)
ORDER BY
artikel_preis ASC;
Und auch hier habe ich noch einen Fehler gefunden:
SELECT
a1.artikel_id,
a1.group_id,
a1.artikel_name,
a1.artikel_preis
FROM
artikel a1
WHERE
artikel_preis = (
SELECT
MIN(a2.artikel_preis)
FROM
artikel a2
WHERE
a1.group_id = a2.group_id
)
ORDER BY
artikel_preis DESC
Hier stimmt die Sortierung nach artikel_preis nicht:
artikel_id | group_id | artikel_name | artikel_preis
-----------+----------+--------------+--------------
7 | 2 | Radio D | 20
10 | 3 | Toaster C | 12
1 | 1 | Fernseher A | 100