SQLinfo.ru - Все о MySQL

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

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

Вы не зашли.

#1 14.10.2009 23:07:57

Eugene86
Участник
Зарегистрирован: 14.10.2009
Сообщений: 7

Как вывести данные пободным образом?

Есть БД Zadanie с таблицей task, содержащей поля:
id_task, имя, доход, расход.
Содержимое таблицы:

имя       доход        расход
Вася    122            444
Петя     43             5553
Маша    777             423
Женя    1299            122
Вася    973            334

Как можно вывести содержимое в следующем виде:

имя       доход        расход         доход        расход
Вася     122            444           973            334
Петя     43             5553
Маша    777             423
Женя    1299            122

Неактивен

 

#2 14.10.2009 23:13:58

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Как вывести данные пободным образом?

Правильный ответ — никак. Ну то есть в данном конкретном случае можно, но
когда у Васи появится третья строчка, то прийдется переписывать запрос, т.е.
универсально сделать не получится.

Более интересный вопрос — зачем это нужно выводить так? Самый близкий
переносимый вариант:

SELECT name, GROUP_CONCAT(income), GROUP_CONCAT(expense)
FROM tablename
GROUP BY name

Там будет для Васи строка
Вася 122,973 444,334

Неактивен

 

#3 14.10.2009 23:28:42

Eugene86
Участник
Зарегистрирован: 14.10.2009
Сообщений: 7

Re: Как вывести данные пободным образом?

А если таблицу разделить на две
task:
id_task, имя
money:
id_task, доход, расход, id_money

Неактивен

 

#4 14.10.2009 23:40:15

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Как вывести данные пободным образом?

А в чем, собственно, вопрос? smile

Проблема не в количестве таблиц, проблема в динамическом количестве колонок,
которое Вы хотите на выходе. Зачем Вам такое?

Неактивен

 

#5 14.10.2009 23:41:01

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

Re: Как вывести данные пободным образом?

А чего вы этим добьетесь?

В части перечисления полей запроса SELECT имена колонок и их кол-во, должно быть фиксированно до выполнения запроса. Т.е. в зависимости от того сколько раз у вас совпадают имена должны быть разные запросы.

Так что пользуйтесь функцией group_concat() и обрабатывайте полученный результат во внешнем приложении.

P.S. Второй раз опоздал с ответом smile

Неактивен

 

#6 14.10.2009 23:51:17

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Как вывести данные пободным образом?

У меня, наверное, оповещение о почте приходит чуть раньше wink

Неактивен

 

#7 15.10.2009 00:02:21

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

Re: Как вывести данные пободным образом?

Требую отмены дискриминации по цветовому признаку штанов, тфу.. используемому почтовому серверу.

Неактивен

 

#8 15.10.2009 00:02:42

Eugene86
Участник
Зарегистрирован: 14.10.2009
Сообщений: 7

Re: Как вывести данные пободным образом?

Спасибо за советы и скорость ответов

Неактивен

 

Board footer

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