Soluzione Carlos molto semplificata e corretta (la sua soluzione restituirebbe le prime 5 righe, non ultime...):
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, puoi usare tB1.textB
anche se è raggruppato per query, perché stai raggruppando per idB nella prima tabella, quindi c'è un solo valore di tB1.textB
per ogni gruppo...