LINUX.ORG.RU

SQL query

 , ,


0

1

Всем привет. Есть одна задача которую хотелось бы реализовать чисто sql запросом, но я почему-то столкнулся с проблемой в реализации. Есть таблица категорий - в ней поля id, name, есть таблица юзеров , и есть таблица подписок - ну там понятно id, category_id, user_id - думаю понятно в таблице храниться инфо какой пользователь на какие категории подписался. И вот есть задача в представлении в общей выдаче под каждым юзером выдать в отдельных блоках названия категорий на которые он подписан, не знаю как правильно с запросе вытянуть для каждого юзера в одну строку через запятую, к примеру, названия всех категорий на которые он подписан. Не хочется на стороне сервера потом идти в цикле и делать доп. выборку для каждого юзера, хотелось бы это сделать посредством sql. Может кто привести правильный пример запроса для моего случая?


Ответ на: комментарий от bvn13

В оракле, в постргесе есть функции для конкатенации строк. Можно так же денормализовать данные и при изменении подписки, сохранять данные в пользователе (но это вариант для дикой оптимизации и в данном случае вряд ли пригодится).

anonymous
()

То что описал в хранимой процедуре firebird через for select можно сделать, в остальных фик знает есть такая штука или нет.

ilovewindows ★★★★★
()

А зачем? Проще в запрашивающей программе результат выдачи объединить

Harald ★★★★★
()
Ответ на: комментарий от stevejobs

Почему для mysql не годится нативный group_concat?
// Не знаю mysql, поэтому интересуюсь

anonymous
()
Ответ на: комментарий от anonymous

Да извините, забыл упомянуть - MySQL

Berdin
() автор топика
Ответ на: комментарий от Berdin

group_concat если ты точно знаешь что у тебя небольшое количество конкатенируемых результатов. При большом хвост будет отрезан.

Jaberwock ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.