как заставить работать group_concat в MySQL 5.7

У меня есть следующие таблицы, и я хочу использовать функцию group_concat в MySQL 5.7, но она показывает ошибку. Может кто-нибудь помочь мне?

     **ride**                                         **route**
  r_id       Date1                             region  route_name  ri_id 
    1      2019-09-11                            DXB      dx1       1
    2      2019-09-11                            AUH      au1       2
    3      2019-09-11                            DXB      dx2       3
    4      2019-09-11                            NE       ne1       4

Я использую следующий запрос к group_concat, но он показывает такую ​​​​ошибку

mysql Error Code: 3 error writing file 'C:\Winows\temp\Myffd3.tmp' (Errcode: 28).

SELECT region,GROUP_CONCAT(route_name) AS route_name FROM route LEFT JOIN ride ON ri_id = r_id WHERE  date1 = '2019-09-11' GROUP BY region

Я хочу, чтобы вывод был таким

region    route_name
 DXB       dx1,dx2
 AUH       au1
 NE        ne1

person Rubin Anbin    schedule 19.11.2019    source источник
comment
Если вы получаете сообщение об ошибке, вы всегда должны указывать точное сообщение об ошибке в своем вопросе. Как мы должны угадать? Вы получите лучшие ответы, если поделитесь этой важной информацией.   -  person Bill Karwin    schedule 19.11.2019
comment
это ошибка Код ошибки mysql: 3 ошибка записи файла «C:\Winows\temp\Myffd3.tmp» (код ошибки: 28).   -  person Rubin Anbin    schedule 19.11.2019
comment
См. это: stackoverflow.com/questions/7415710 /   -  person Bill Karwin    schedule 19.11.2019


Ответы (2)


во-первых, проблема в том, что у вас нет псевдонима в вашей таблице, поэтому ваш ON оператор запутается, какой ID

во-вторых, используйте inner join, чтобы у вас не было дополнительных comma в результатах. (в дополнение к ответу Тима Бигелейзена)

select t1.region
    , group_concat(t1.route_name) AS route_name 
from route t1 
inner join ride t2 on t2.r_id = t1.r_id 
where  t2.date1 = '2019-11-05' 
group by t1.region
person Ed Bangga    schedule 19.11.2019

В предложении ON вашего соединения есть проблема с синтаксисом. Вы были правы, используя псевдонимы в запросе, но вот версия, которая может работать:

SELECT
    ro.region,
    GROUP_CONCAT(ri.route_name) AS route_name
FROM route ro
LEFT JOIN ride ri
    ON ri.r_id = ro.r_id
WHERE
    ri.date1 = '2019-09-11'
GROUP BY
    ro.region;
person Tim Biegeleisen    schedule 19.11.2019