Stark vereinfachte und korrigierte Carlos-Lösung (seine Lösung würde die ersten 5 Zeilen zurückgeben, nicht die letzte ...):
SELECT tB1.idA, tB1.idB, tB1.textB
FROM tableB as tB1
JOIN tableB as tB2
ON tB1.idA = tB2.idA AND tB1.idB <= tB2.idB
GROUP BY tB1.idA, tB1.idB
HAVING COUNT(*) <= 5
In MySQL können Sie tB1.textB
verwenden auch wenn es sich um eine Gruppierung nach Abfrage handelt, da Sie nach der IDB in der ersten Tabelle gruppieren, sodass nur ein einziger Wert von tB1.textB
vorhanden ist für jede Gruppe...