powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / SQL запрос
5 сообщений из 5, страница 1 из 1
SQL запрос
    #34208272
matriculator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет. У меня небольшой опыт написания SQL запросов и я столкнулся с задачея для которой немогу найти решения. Жду совета более опытных.

База на Postgres, поэтому подходят не только запрос(ы), но и процедурка на PL/pgSQL.

есть таблица пользователей members
id | name | chief | ...

chief - это руководитель, т.е. это ключ из самой таблицы members

есть таблица заявок demands
id | member | ...

member - это ключ из таблицы members, определяет пользователя пославшего заявку

допустим есть конкретный id пользователя
как выбрать все заявки, для которых пользователь пославший заявку является подчиненным пользователя с ключом id

другими словами заявки пользователей, в качествве руководителя которым указан наш id

точнее так:
выбрать все заявки отправленные пользователями, для которых руководителем является сотрудник с ключом = id
А ТАКЖЕ
выбрать все заявки отправленные пользователями, для которых руководителем руководителя является сотрудник с ключом = id

вот пример, несколько записей

Таблица members
id name chief
1 Петя null
2 Коля 1
3 Маша 2

(т.е.у Пети нет руководителя, у Коли руководитель Петя, а у Маши р-ль Коля )


Таблица demands
id member
1 2 (Заявка, отправленная Колей)
2 3 (Заявка, отправленная Машей)

как составить запрос, чтобы выбрать заявки сотрудников для которых Петя руководитель или для которых руководитель сотрудник руководителем которого является Петя
примерчики:
если id = 1, то подходят обе заявки
если id = 2, то одна заявка (Машина)
если id =3, то нет заявок
...
Рейтинг: 0 / 0
SQL запрос
    #34208400
kamerad1981
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
При данной структуре эту проблему нельзя решить до конца(без использования функций), т.к. уровень иерархии у тебя не ограничен.
...
Рейтинг: 0 / 0
SQL запрос
    #34208610
matriculator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
автор
уровень иерархии у тебя не ограничен


мне нужны только заявки 1 и 2 уровня


(т.е. заявки тех сотрудников, для которых непосредственно указан руководителем сотрудник с ключом id или сотрудников руководителем руководителя которых является сотрудник с ключом id
...
Рейтинг: 0 / 0
SQL запрос
    #34209188
Бабичев Сергей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Используй иерархические запросы: тынц
...
Рейтинг: 0 / 0
SQL запрос
    #34209498
LeXa NalBat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
matriculatorкак выбрать все заявки, для которых пользователь пославший заявку является подчиненным пользователя с ключом idаналогично этому

matriculatorмне нужны только заявки 1 и 2 уровнядвойной self-join
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / SQL запрос
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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