Почему цикл не останавливается?
Сильно сомневаюсь, что бесконечно. У вас написано полное декартово произведение таблиц. Значит число строк на выходе будет равняться произведению числа строк в первой таблице на число строк во второй таблице.
похоже вам нужно объединение таблиц по внешнему ключу.