Можете да получите всичко с една заявка с просто присъединяване, напр.:
SELECT d.name AS 'department', p.name AS 'name'
FROM department d
LEFT JOIN people p ON p.department_id = d.id
ORDER BY department
Това връща всички данни, но е малко трудно да се консумират, тъй като така или иначе ще трябва да преглеждате всеки човек. Можете да отидете по-далеч и да ги групирате заедно:
SELECT d.name AS 'department',
GROUP_CONCAT(p.name SEPARATOR ', ') AS 'name'
FROM department d
LEFT JOIN people p ON p.department_id = d.id
GROUP BY department
Като изход ще получите нещо подобно:
department | name
-----------|----------------
sales | Tom, Bill, Rachel
marketing | Jessica, John