SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 28.07.2015 17:13:27

cha0s
Участник
Зарегистрирован: 29.07.2014
Сообщений: 18

Весь результат запроса в один row

Такая проблема есть большой запрос вида:


SELECT p.product_id,
p.product_sku,
p.product_desc as product_desc_ru,
p.product_full_image,
p.product_weight,
p.product_in_stock,
p.product_name as product_name_ru,
p.attribute,
l.reference_field,
l.value,
a.file_url,
c.product_price,
d.amount as discount,
d.start_date,
d.end_date,
ci.category_id,
ci.category_name as category_name_ru,
ci.category_description as category_description_ru,
ci.category_full_image
FROM `jos_vm_product` p
LEFT JOIN `jos_jf_content` l ON p.product_id = l.reference_id // ТУТ ID НЕ УНИКАЛЕН И МОЖЕТ ВЕРНУТЬ 2 и БОЛЕЕ ROW
LEFT JOIN `jos_vm_product_files` a ON p.product_id = a.file_product_id // ТУТ ID НЕ УНИКАЛЕН И МОЖЕТ ВЕРНУТЬ 2 и БОЛЕЕ ROW
LEFT JOIN `jos_vm_product_price` c ON p.product_id = c.product_id AND c.product_currency = 'EUR'
LEFT JOIN `jos_vm_product_discount` d ON p.product_discount_id = d.discount_id
LEFT JOIN `jos_vm_product_category_xref` ch ON p.product_id = ch.product_id
LEFT JOIN `jos_vm_category` ci ON ch.category_id = ci.category_id
WHERE l.language_id = 4 AND l.reference_table = 'vm_product'
 


Имхо главный вопрос как сделать так чтоб он достраивал таблицу? так чтоб конкретно к одному p.product_id принадлежала одна строка, то есть мне нужно там где возвращается 2 и более строки слепить в одну строку в виде отдельных(новых добавленных) столбцов, задача реальна?

Например таблица вида

------------------------------------------
file_id | file_product_id | file_name
169    |         392        | NAME1
170    |         392        | NAME2
171    |         392        | NAME3
172    |         392        | NAME4
------------------------------------------
Результат запроса должен дать

------------------------------------------------------------------------------------
file_product_id | file_name | file_name2 | file_name3 | file_name4
        392        | NAME1     | NAME2       | NAME3      | NAME4
------------------------------------------------------------------------------------

Как такое сделать? ;-)

group_concat который делает одну строку в одной колонке не предлагать, надо именно чтоб добавились новые колонки которые будут равняться числу ROW

Отредактированно cha0s (28.07.2015 18:28:53)

Неактивен

 

#2 29.07.2015 06:47:07

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Весь результат запроса в один row

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson