Чтобы сделать это немного легче для вас, вы можете попробовать использовать левые и правые соединения в вашей базе данных.Это значительно уменьшит нагрузку на ваш сервер и все еще позволит вам выполнять ту же функцию.
Я считаю, что если я правильно читаю структуру вашей базы данных, вам нужно что-то вроде:
SELECT members.id as memberID, rooms.id as roomID, rooms.roomName, membersRooms.roomID as memberRoom
FROM members
LEFT JOIN membersRooms
ON members.id = membersRooms.userID
RIGHT JOIN rooms
ON membersRooms.roomID = rooms.id
Тогда в PHP вы сможете просто отслеживать, когда меняется ваш memberID, а когда это происходит, начинать новый выбор.Если бы я не полностью запутал этот SQL (который у меня мог бы быть), тогда результирующие строки должны выглядеть примерно так:
memberID | roomID | roomName | memberRoom
1 1 foo 1
1 2 bar 1
2 1 foo 1
2 2 bar 1
Так что на вашей итерации цикла вы использовали бы roomID и roomName для построения вашего выбора, иесли RoomID соответствует memberRoom, вы бы выбрали эту строку.