MySQL левое соединение возвращает несколько строк, я хочу одну строку - PullRequest
0 голосов
/ 24 марта 2020

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

Таблица заказов: opdrachten

Таблица участников: opdrachten_planning

Таблица участников содержит только medewerker.id (член id) и opdrachten.id (идентификатор заказа).

Следующий код возвращает несколько строк:

SELECT A.* , B.`opdracht` , B.`medewerker` FROM `opdrachten` AS A LEFT JOIN `opdrachten_planning` AS B ON B.`opdracht` = A.`id` WHERE A.`status`='actief'

Возвращает:

Местоположение Amsterdam medewerker 22

Местоположение Amsterdam medewerker 36

Что я хочу:

Местоположение Amsterdam medewerker 22, 36

Я пытался group_concat но не могу заставить это работать. Вы можете помочь мне? Tx!

1 Ответ

0 голосов
/ 24 марта 2020

GROUP_CONCAT, кажется, приводит к результату, который вы ищете. Я добавил предложение GROUP BY к вашему запросу, чтобы агрегация работала.

SELECT 
    A.*, 
    GROUP_CONCAT(B.medewerker)
FROM opdrachten AS A 
LEFT JOIN opdrachten_planning AS B 
    ON B.opdracht = A.id 
WHERE 
    A.status='actief';
GROUP BY A.id;
...