Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Интересный вопрос по SQL

12K
04 сентября 2007 года
daniel20
12 / / 16.11.2005
Здраствуйте господа.
У меня есть такой запрос

Select oi.order_id,i.name,oi.price from items i, order_items oi where i.id=oi.item_id order by order_id

он выдает результат:
order_id...............name......price
1........................ru3.........20
1........................ru1.........10
2........................ru2.........55
2........................ru1.........10
3........................ru2.........55

Дело в том что задачя была поставлена неможко иначе, получить вот такой результат:

order_id..............."результат"
1........................"ru3 : 20, ru1 : 10"
2........................"ru2 : 55, ru1 : 10"
3........................"ru2 : 55"

Реально ли это? Таблицы я вложил в zip файл. Спасибо всем.
385
04 сентября 2007 года
SomewherSomehow
477 / / 25.07.2004
Какая СУБД? Если твоя СУБД поддерживает пользовательские функции, то напиши функцию которая по ИДшке тебе бы возвращала строку..имхо, самое правильное решение в таких случаях.
12K
04 сентября 2007 года
daniel20
12 / / 16.11.2005
А чистым SQL-ем невозможно? Задача стоит в реализации на MySQL 4.1
337
04 сентября 2007 года
shine
719 / / 09.06.2006
Цитата: daniel20
А чистым SQL-ем невозможно? Задача стоит в реализации на MySQL 4.1



Select oi.order_id, GROUP_CONCAT(CONCAT(i.name, ' : ',oi.price)) as result from items i, order_items oi where i.id=oi.item_id group by oi.order_id order by order_id

12K
04 сентября 2007 года
daniel20
12 / / 16.11.2005
Большое спасибо. Это то что нужно.
32K
04 сентября 2007 года
inWiz
2 / / 04.09.2007
кстати, если столбцов на вывод много, лучше использовать не concat(), а concat_ws()
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог