Du kan få det hele i en enkelt forespørgsel med en simpel join, f.eks.:
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
Dette returnerer alle data, men det er lidt af en smerte at forbruge, da du alligevel bliver nødt til at gentage hver person. Du kan gå videre og gruppere dem sammen:
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
Du får noget som dette som output:
department | name
-----------|----------------
sales | Tom, Bill, Rachel
marketing | Jessica, John