Как группировать сотрудников по их фирмам в MYSQL - PullRequest
0 голосов
/ 15 марта 2011

У меня есть две таблицы: Firms and Employees

Мне нужен запрос, чтобы все записи о фирмах извлекались, и в рамках этого запроса извлекали сотрудников для каждой фирмы.

Например:

ABC Company
Smith, John
Johnson, Tim

DEF Inc.
Jones, Mack
Frank, Tom

Я безуспешно пробовал варианты JOIN, UNION и т. Д. ...

Ответы [ 2 ]

3 голосов
/ 16 марта 2011
SELECT f.FirmName, GROUP_CONCAT(e.EmpName) AS Employees 
FROM Firm f LEFT JOIN Employee e on f.FirmID = e.FirmID
GROUP BY f.FirmID
0 голосов
/ 16 марта 2011

Запрос, подобный приведенному ниже, предоставит вам список всех фирм, а в ЛЕВОЕ СОЕДИНЕНИЕ входят компании, даже если в нем нет сотрудников.

select f.name firmname, e.name
from firms f
left join employees e on e.firm_id = f.firm_id
order by firmname, e.name

В коде внешнего интерфейса выполните шагзаписи и всякий раз, когда название фирмы меняется, начинайте новый раздел фирмы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...