Если задача стоит одним запросом (показать знание SQL), то можно попробовать что такое сделать:
SELECT
`a`.`id` AS `projectId`,
`a`.`url` AS `projectUrl`,
GROUP_CONCAT(`c`.`photo` SEPARATOR ', ') AS `photos`
FROM `projects` AS `a`
LEFT JOIN `personal` AS `b` ON `b`.`project` = `a`.`id`(?)
LEFT JOIN `users` AS `c` ON `c`.`id` = `b`.`user`
Если задача стоит просто таблицу сделать, то лучше отдельными запросами
1. Первым запросом получаем список проектов
2. Собираем id проектов
3. Делаем запрос в таблицу с доступами
4. Делаем запрос с пользователями
5. Собираем вместе данные
Такой подход менее ресурсоемкий для БД, лучше 2-3 запроса по индексам, чем JOIN'ы стряпать.
Могу ошибаться конечно