Интересный запрос к таблице. Возможно ли ?

Nikola_N

Новичок
Интересный запрос к таблице. Возможно ли ?

Привет
Возможно ли сделать с помощью SQL запроса вот такую выборку (смотри картинку)
ПРИМЕР В ГРАФИКЕ
Товаров не много в базе ... до 10.
 

partizan

Новичок
Можно


SELECT name, tov='TOV1',tov='TOV2',tov='TOV3' ...
FROM table

Рез-тат будет такой
PHP:
Катя |  t  |  f  |  f  |
Лена |  t  |  f  |  t  |
Маша |  f  |  f  |  t  |
А если надо не t/f - а пустая колонка, либо значение - то нужно ф-ю написать
 

Bitterman

Новичок
А зачем такой запрос? Не легче ли сделать обыкновенный, а уже результат преобразовать в массив необходимого формата?
 

partizan

Новичок
По-моему не легче.

А вот t и f на нормальный вывод уже можно преобразовать средствами пхп
(В MySQL будет 1/0 вместо t/f)
 

Nikola_N

Новичок
Автор оригинала: Bitterman
А зачем такой запрос? Не легче ли сделать обыкновенный, а уже результат преобразовать в массив необходимого формата?
с массивом то можно повозится, но хочется именно запросом :)
 

Nikola_N

Новичок
Автор оригинала: partizan
Можно


SELECT name, tov='TOV1',tov='TOV2',tov='TOV3' ...
FROM table

Рез-тат будет такой
PHP:
Катя |  t  |  f  |  f  |
Лена |  t  |  f  |  t  |
Маша |  f  |  f  |  t  |
А если надо не t/f - а пустая колонка, либо значение - то нужно ф-ю написать
щас попробую, спасибо за совет

-~{}~ 03.08.06 16:59:

Автор оригинала: Panchous
ты сам-то понял, что спросил?
а что не ясного на пикче?

или лиж бы запостить что-нить (судя по вашему количеству постов :) )
 

Clubber

Новичок
Интересный запрос ...
Ты себе льстишь.

Тебе вообще не должно хотеться писать запросы с такой выборкой. В то время, когда все стремятся делать нормализацию, ты пытаешься сделать ДЕнормализацию.

-~{}~ 03.08.06 17:21:

partizan
И ты тоже хорош. Если тебя человек попросит намылить ему веревку, ты тоже беспрекословно бросишься помогать?
 

partizan

Новичок
Автор оригинала: partizan
SELECT name, tov='TOV1',tov='TOV2',tov='TOV3' ...
FROM table
Извиняюсь, погорячился. Это бред.

Но реализавать то что надо всеравно можно

-~{}~ 03.08.06 17:36:

PHP:
SELECT name, sum(tov = 'TOV1'), sum(tov = 'TOV2'), sum(tov = 'TOV3')...
GROUP BY name
 

Nikola_N

Новичок
Автор оригинала: Clubber
Ты себе льстишь.

Тебе вообще не должно хотеться писать запросы с такой выборкой. В то время, когда все стремятся делать нормализацию, ты пытаешься сделать ДЕнормализацию.
Причём тут нормализация или ДЕнормализация .. помоему данные хранятся в нормальнгом виде.
Мне необходимо просмотреть данные в удобнов виде.
Для этого такой, может и "кривой", запрос нужен.

Практика вещь суровая ... это не статьи изучать о нормализации и денормализации, кстате для многих задач на практике специально таблици денормализируют (ух и словечко получилось) :)
 

Clubber

Новичок
Nikola_N
хранятся в более-менее нормальном, угу. Но и над резалт сетом извращаться не нужно. Резалт сеты с динамическим кол-вом столбцов - нонсенс.
 

Nikola_N

Новичок
Автор оригинала: Clubber
Но и над резалт сетом извращаться не нужно. Резалт сеты с динамическим кол-вом столбцов - нонсенс.
это что за правило такое. каковы будут аргументы?

-~{}~ 03.08.06 19:38:

Автор оригинала: partizan
PHP:
SELECT name, sum(tov = 'TOV1'), sum(tov = 'TOV2'), sum(tov = 'TOV3')...
GROUP BY name
partizan, респект! То что нада. :)

ЗЫ
говорят можно еще вот так
select
fio,
IF(TOV = 'Тов1',TOV,''),
IF(TOV = 'Тов2',TOV,''),
...
IF(TOV = 'ТовN',TOV,'')
from table

лично я не пробовал. мне подожел вариант partizan-а
 

Nikola_N

Новичок
Автор оригинала: partizan
Это то-же, что я предложел в 1-й раз
да, похоже .. но с помощью
SELECT name, sum(tov = 'TOV1'), sum(tov = 'TOV2'), sum(tov = 'TOV3')...
GROUP BY name
более информативная выборка получается , еще раз спасибо !
 
Сверху