@usdbuy

Как в одну строку через SQL вывести данные один ко многим?

Всем привет, пытаюсь спроектировать бд.. есть 2 таблицы:

companies
- id
- name
- employees

employees
- id
- name
- company_id

у компании есть много сотрудников.. связь один ко многим.. подскажите через какие операторы можно сделать sql запрос который мог бы отобразить след результат.. в идеале бы пример запроса
L6VF4i7.png

вроде джоины не подходят?

используется Mysql 5.6.17
  • Вопрос задан
  • 674 просмотра
Пригласить эксперта
Ответы на вопрос 2
ThunderCat
@ThunderCat
{PHP, MySql, HTML, JS, CSS} developer
Никак, так как там может быть миллион сотрудников в одной фирме и 3 в другой. Единственное что вы можете сделать - конкатенировать сотрудников через запятую или другой разделитель по груп бай. Если опишете задачу нормально, то можно будет посоветовать максимально подходящий костыль, или нормальное решение реальной задачи, а не свободной фантазии на тему.

UPD: Должно быть что-то типа:
SELECT concat(c.name,',',GROUP_CONCAT(e.name)) cn
FROM `companies` c
LEFT JOIN `employees` e
ON c.id = e.company_id
GROUP BY c.name
Ответ написан
beliyadm
@beliyadm
because open source matters
Никак, никакой нормализации, нужно то было всегд сделать три таблицы, между companies и employees добавить связь между сотрудниками (учитывайте далее - эта же база данных работает в бухглелтерии)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы