Bạn có thể lấy tất cả trong một truy vấn với một phép nối đơn giản, ví dụ:
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
Điều này trả về tất cả dữ liệu, nhưng hơi khó để sử dụng, vì bạn sẽ phải lặp lại từng người một. Bạn có thể đi xa hơn và nhóm chúng lại với nhau:
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
Bạn sẽ nhận được một thứ như thế này làm đầu ra:
bộ phậndepartment | name
-----------|----------------
sales | Tom, Bill, Rachel
marketing | Jessica, John