GROUP_CONCAT: получить данные подряд
пытаюсь получить 4 адреса из другой таблицы по их ID
есть запрос:
select ld.*, GROUP_CONCAT(le.url) as urls
from links_data as ld
inner join links_extra as le on
ld.userURL1=le.id or ld.partnerURL1=le.id or ld.partnerURL2=le.id or ld.userURL2=le.id
в urls все ссылки появляются нормально, но порядок не такой, т.е нужно что бы сортировка была именно такой: userURL1,partnerURL1,partnerURL2,userURL2
подскажите как это сделать? спасибо!
Ответы (1 шт):
Автор решения: Slava Rozhnev
→ Ссылка
Вы можете воспользоваться следующим запросом:
select
ld.*,
GROUP_CONCAT(le.url order by
ld.userURL1=le.id desc,
ld.partnerURL1=le.id desc,
ld.partnerURL2=le.id desc,
ld.userURL2=le.id
) as urls
from links_data as ld
inner join links_extra as le on
ld.userURL1=le.id or
ld.partnerURL1=le.id or
ld.partnerURL2=le.id or
ld.userURL2=le.id
group by
id,
userURL1,
partnerURL1,
userURL2,
partnerURL2
;