Таблица один - WorkOrderВыберите несколько данных из другой таблицы для каждого идентификатора через запятую
╔══════════╦══════════════╦══════════════╗
║ id ║ wpeople ║ start_date ║
╠══════════╬══════════════╬══════════════╣
║ 1 ║ 1,2,4 ║ 02.08.2016 ║
║ 2 ║ 4,5 ║ 28.09.2016 ║
╚══════════╩══════════════╩══════════════╝
Таблица два - сотрудники
╔══════════╦═════════════════╗
║ id ║ name ║
╠══════════╬═════════════════╣
║ 1 ║ John ║
║ 2 ║ Ben ║
║ 3 ║ Ian ║
║ 4 ║ Hank ║
║ 5 ║ George ║
╚══════════╩═════════════════╝
выбор выхода для тех, кто должен работать над проектом
╔══════════╦════════════════╦════════════╗
║ 1 ║ John,Ben,Hank ║ 02.08.2016 ║
║ 2 ║ Hank,George ║ 28.09.2016 ║
╚══════════╩════════════════╩════════════╝
Я пробовал с GROUP_CONCAT и FIND_IN_SET
SELECT w.id,
GROUP_CONCAT(e.name ORDER BY e.id) workorder
FROM workorder w
INNER JOIN employees e
ON FIND_IN_SET(e.id, a.wpeople) > 0
GROUP BY w.id
Но выход это
╔══════════╦════════════════╦════════════╗
║ 1 ║ John ║ 02.08.2016 ║
║ 1 ║ Ben ║ 02.08.2016 ║
║ 1 ║ Hank ║ 02.08.2016 ║
║ 2 ║ Hank ║ 28.09.2016 ║
║ 2 ║ George ║ 28.09.2016 ║
╚══════════╩════════════════╩════════════╝
Я поиск по Google для этого и решение это GROUP_CONCAT - FIND_IN_SET. Может быть, я не очень хорошо понял эту функцию.
Спасибо вам за внимание! Стефан
У вас нет алиаса 'a' в любом случае, поэтому запрос будет синтаксической ошибкой с плавающей точкой' a.wpeople' не будет существовать. И почему вы не нормализировали свои таблицы от выхода? Сохранение нескольких значений данных во втором поле почти является признаком плохой конструкции. find_in_set() очень неэффективен, так как индексы не могут использоваться. –
Как уже было сказано выше, вам необходимо денормализовать эти данные. Тем не менее, форматирование вывода, как это, лучше всего оставить на слое представления, а не на слое данных. Что вы используете для отображения данных? Веб-страница? Приложение? – mrunion
@ Marc Мой плохой, я забыл ... изменить его, в моем коде это a и b, здесь я сделал изменение e от сотрудников и b создал рабочий порядок @mrunion Я использую этот запрос SQL для приложение, используемое для администрирования рабочих мест для работодателей и в конце для отправки электронной почты, чтобы сообщить им ... – zmeutz