Znacznie uproszczone i poprawione rozwiązanie Carlosa (jego rozwiązanie zwróciłoby pierwsze 5 wierszy, nie ostatnie...):
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
W MySQL możesz użyć tB1.textB
nawet jeśli jest to grupowanie według zapytania, ponieważ grupujesz według idB w pierwszej tabeli, więc istnieje tylko jedna wartość tB1.textB
dla każdej grupy...