Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> Перегруппировка массива, нужна наводка
Kumirska  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Абориген
*****

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 206
Пользователь №: 27755
На форуме: 13 лет, 10 месяцев, 14 дней
Карма: 1




Есть таблица PRICES с ценами, где:

ID_GOOD - GOOD1, GOOD2, GOOD3, GOOD4 – (товары)

ID_PRICE - PRICE1, PRICE2, PRICE3 – (цены)

PRICE – сама цена товара.


--
-- Структура таблицы `prices`
--

CREATE TABLE IF NOT EXISTS `prices` (
`ID` int(5) NOT NULL AUTO_INCREMENT,
`ID_GOOD` varchar(10) NOT NULL,
`ID_PRICE` varchar(10) NOT NULL,
`PRICE` varchar(10) NOT NULL,
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=18 ;

--
-- Дамп данных таблицы `prices`
--

INSERT INTO `prices` (`ID`, `ID_GOOD`, `ID_PRICE`, `PRICE`) VALUES
(1, 'GOOD1', 'PRICE1', '250р.'),
(2, 'GOOD1', 'PRICE2', '340р.'),
(3, 'GOOD1', 'PRICE3', '140р.'),
(4, 'GOOD2', 'PRICE1', '190р.'),
(5, 'GOOD2', 'PRICE2', '0р.'),
(6, 'GOOD2', 'PRICE3', '120р.'),
(7, 'GOOD3', 'PRICE1', '450р.'),
(13, 'GOOD3', 'PRICE2', '630р.'),
(14, 'GOOD3', 'PRICE3', '200р.'),
(15, 'GOOD4', 'PRICE1', '430р.'),
(16, 'GOOD4', 'PRICE2', '220р.'),
(17, 'GOOD4', 'PRICE3', '190р.');



Необходимо сформировать SQL запрос для вывода данных в следующем виде (сводная таблица):
user posted image

Я предполагаю, нужен JOIN. Правда вот я не понял, как составить запрос так, чтоб значения полей стали его названиями, как указано в сводной таблице


--------------------
никому не дано знать абсолютной истины, ибо понятия, которыми мы оперируем, сами по себе относительны
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
walerus  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Чтобы все !
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 2881
Пользователь №: 26852
На форуме: 14 лет, 5 дней
Карма: 162




Я бы сделал через массив. Иное решение был бы рад увидеть...
PMICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Valick  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 6460
Пользователь №: 35718
На форуме: 12 лет, 4 месяца, 1 день
Карма: 208




Цитата
Иное решение был бы рад увидеть...

неправильная организация БД, отсюда и рога с копытами


--------------------
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
vital  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



int main(){printf("Hello World"); return 0;"}
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 2490
Пользователь №: 20247
На форуме: 15 лет, 2 месяца, 27 дней
Карма: 63




ну 3 раза сджойнить таблицу саму в себя и сделать какой-нить хевинг\группбай.
Ну и порыскать по ф-м внутри мускл, явно же есть что-то нужное. А вообще да, лучше бд переделать.


--------------------
"Нужно быть готовым прислушиваться к тем, кто может тебя чему-нибудь научить. Иначе ты никогда не вырастешь."

Откровенно я никому ниразу не нагрубил. А дать подзатыльник зарвавшемуся юнцу, так это и ему на пользу, и мне в удовольствие. © AllesKlar
PMПисьмо на e-mail пользователюСайт пользователяICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Kumirska  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Абориген
*****

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 206
Пользователь №: 27755
На форуме: 13 лет, 10 месяцев, 14 дней
Карма: 1




Сделал через массив, получилось сразу. MySQL пока не на таком уровне знаний.
Всем спасибо!


--------------------
никому не дано знать абсолютной истины, ибо понятия, которыми мы оперируем, сами по себе относительны
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Hello  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 837
Пользователь №: 32378
На форуме: 12 лет, 10 месяцев, 10 дней
Карма: 50





SELECT `ID_GOOD`, `ID_PRICE`, `PRICE`, ` FROM `prices` p1
JOIN `
prices` p2 ON p1.`ID_GOOD` = p2.`ID_GOOD` AND p2.`ID_PRICE` = 'PRICE2'
JOIN `
prices` p3 ON p1.`ID_GOOD` = p3.`ID_GOOD` AND p3.`ID_PRICE` = 'PRICE3'
WHERE p1.`
ID_PRICE` = 'PRICE1'

но схема действительно говно


--------------------
VPS от 5$, первые 2 месяца - бесплатно.
PM
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Ответ в темуСоздание новой темыСоздание опроса