Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
SQL запрос
|
|||
|---|---|---|---|
|
#18+
Всем привет. У меня небольшой опыт написания 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, то нет заявок ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2006, 17:28 |
|
||
|
SQL запрос
|
|||
|---|---|---|---|
|
#18+
При данной структуре эту проблему нельзя решить до конца(без использования функций), т.к. уровень иерархии у тебя не ограничен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2006, 17:49 |
|
||
|
SQL запрос
|
|||
|---|---|---|---|
|
#18+
автор уровень иерархии у тебя не ограничен мне нужны только заявки 1 и 2 уровня (т.е. заявки тех сотрудников, для которых непосредственно указан руководителем сотрудник с ключом id или сотрудников руководителем руководителя которых является сотрудник с ключом id ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2006, 18:55 |
|
||
|
SQL запрос
|
|||
|---|---|---|---|
|
#18+
Используй иерархические запросы: тынц ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2006, 04:53 |
|
||
|
SQL запрос
|
|||
|---|---|---|---|
|
#18+
matriculatorкак выбрать все заявки, для которых пользователь пославший заявку является подчиненным пользователя с ключом idаналогично этому matriculatorмне нужны только заявки 1 и 2 уровнядвойной self-join ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2006, 10:12 |
|
||
|
|

start [/forum/topic.php?fid=53&gotonew=1&tid=2005864]: |
0ms |
get settings: |
7ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
49ms |
get topic data: |
9ms |
get first new msg: |
5ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
2ms |
| others: | 226ms |
| total: | 368ms |

| 0 / 0 |
