Mycket förenklad och korrigerad Carlos-lösning (hans lösning skulle returnera första 5 raderna, inte sista...):
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
I MySQL kan du använda tB1.textB
även om det är grupp för fråga, eftersom du grupperar efter idB i den första tabellen, så det finns bara ett enda värde på tB1.textB
för varje grupp...