Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Выборка из промежуточной таблицы / 7 сообщений из 7, страница 1 из 1
24.06.2014, 12:37:31
    #38678378
Borodatych
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка из промежуточной таблицы
Доброго времени суток.

Есть промежуточная таблица:
Код: html
1.
user_id | option1 | option2



В одной записи только одно из полей опций может быть заполненное, второе из них всегда NULL :
Код: html
1.
2.
3.
12032 | null       | option2_1
12032 | null       | option2_2
12032 | option1_1  | null



Можно ли сделать такой запрос (сам сообразить не могу), что бы получить что то вроде:
Код: php
1.
2.
3.
4.
user_id => array(
        'option1' => array( 'option1_1' ),
        'option2' => array( 'option2_1', 'option2_2' ),
);



Если возможно, то буду благодарен хоть прямому ответу, хоть ссылкой на ман.

И второе...

Сейчас я сперва выбираю пользователей, и потом в цикле делаю запрос в эту базу, ну и далее дело техники.
Не будет ли такой запрос, в случае положительного ответа, ресурсоемче чем то что сейчас у меня реализовано?
...
Рейтинг: 0 / 0
24.06.2014, 12:49:10
    #38678404
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка из промежуточной таблицы
Это "что-то вроде" не имеет отношения к MySQL. Это, видимо, PHP...
Если спрашиваешь тут - то указывай конкретно желаемый результат в форме набора данных, а не мифические array...
...
Рейтинг: 0 / 0
24.06.2014, 12:59:29
    #38678419
Borodatych
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка из промежуточной таблицы
Хорошо, попробую словами, предположил что то тоже будет понятно...видимо я больше по php .
Мне нужно выбрать все записи сгруппированные по пользователям, но что бы поля option1 и option2 содержали все варианты для текущего пользователя.
Надеюсь так понятней...
...
Рейтинг: 0 / 0
24.06.2014, 13:15:52
    #38678444
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка из промежуточной таблицы
Как это должно выглядеть именно в виде набора записей? вот как исходные данные таблицей показываешь, точно так же таблицей покажи и желаемый результат.
...
Рейтинг: 0 / 0
24.06.2014, 13:34:11
    #38678464
Borodatych
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка из промежуточной таблицы
Благодарю за попытку понять.

Ситуация маленько изменилась...

Узнал об GROUP_CONCAT , запрос такой:
Код: plsql
1.
2.
3.
4.
5.
SELECT user_id,
		GROUP_CONCAT(DISTINCT option1 DESC SEPARATOR ',') AS o1, 
		GROUP_CONCAT(DISTINCT option2 DESC SEPARATOR ',') AS o2 
FROM table
GROUP BY user_id;



Получаю:
Код: html
1.
12032 | option1_1 | option2_1,option2_2



В принципе гуд, почти то что хотел...
И дальше я возможно не понимаю, но возможно ли возвращать поля option1 и option2 не ввиде строк, а ввиде массива?
...
Рейтинг: 0 / 0
24.06.2014, 14:23:31
    #38678538
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка из промежуточной таблицы
У MySQL нет такого типа данных как массив. Это преобразование придётся делать уже на клиенте - есть же там какая-нить функция типа Split, которая нашинкует строку в массив по заданному разделителю...
...
Рейтинг: 0 / 0
24.06.2014, 15:12:48
    #38678589
Borodatych
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка из промежуточной таблицы
Благодарю за ответы.
Функция split есть, но explode за глаза.
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Выборка из промежуточной таблицы / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]