Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.09.2009, 13:49   #1
jeka5555
Пользователь
 
Регистрация: 20.03.2009
Сообщений: 43
По умолчанию

- вот структура БД.
Необходимо составить запрос который вернёт массив Имен из таблицы "users" и соответствующие этому юзеру имена групп из таблицы "groups", связи юзеров и групп находятся в таблице: "users_grous". т.е. в результате должен получиться массив содержащий в себе ещё массивы (групп для каждого пользователя): [Пользователь1 , [Группа1 , Группа2 , Группа3] ; Пользователь2 , [Группа2 , Группа4]]

From Stilet: В следующий раз за такое название темы в баню ее пошлю.

У меня пока получился вот такой запрос:

PHP код:
SELECT users.idusers.namegroups.group_name
FROM users
LEFT JOIN users_groups ON users
.id users_groups.user_id
LEFT JOIN groups ON users_groups
.group_id groups.id 

Но выводит он не то что я хотел бы, а в выводит записи отдельно для каждой группы одного и того же пользователя. Т.е. Если "Пользователь1" состоит в группах "Группа1" и "Группа2", то данный запрос вернёт 2 записи:
Пользователь1 - Группа1
Пользователь1 - Группа2

А нужно что бы возвращал 1 запись во второй ячейки содержащую массив:
Пользователь1 - [Группа1, Группа2]

Последний раз редактировалось Stilet; 08.09.2009 в 14:49.
jeka5555 вне форума Ответить с цитированием
Старый 08.09.2009, 19:50   #2
soleil@mmc
SQL-коддинг
Участник клуба
 
Регистрация: 16.01.2009
Сообщений: 1,192
По умолчанию

какая субд?
soleil@mmc вне форума Ответить с цитированием
Старый 09.09.2009, 00:15   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от soleil@mmc
какая субд?
Коллега, Вы хотите сказать, что на каком-то движке это можно написать на "чистом" SQL ?! (без привлечения хранимых процедур/функций) o_0
Или это Вы про СУБД спросили, т.к. планируете ХП написать?
я на практике несколько раз решал подобные задачи (на Oracle), но приходилось писать обработку на PL/SQL...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 09.09.2009, 10:12   #4
soleil@mmc
SQL-коддинг
Участник клуба
 
Регистрация: 16.01.2009
Сообщений: 1,192
По умолчанию

на оракле можно через SYS_CONNECT_BY_PATH или wmsys.wm_concat (правда, есть ограничение по версии использования и если хочется иметь независимое от версии решение, то процедура/процедура в пакете наше все)
поищите на скл.ру пример_1, пример_2, пример_3 и т.д.

Последний раз редактировалось soleil@mmc; 09.09.2009 в 13:03.
soleil@mmc вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
составить запрос с учетом времени sinj SQL, базы данных 9 09.06.2009 13:41
Необходимо составить запрос span4 SQL, базы данных 17 05.04.2009 11:43
Как составить запрос из каталога? wegeras PHP 1 28.10.2008 13:36
Как правельно составить запрос!! Areostar SQL, базы данных 3 16.02.2008 19:49
составить запрос к таблицам T1 и T2 MonteCarlos SQL, базы данных 13 03.02.2008 14:05