Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности

Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
18.12.2006, 17:28
|
|||
|---|---|---|---|
|
|||
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:49
|
|||
|---|---|---|---|
|
|||
SQL запрос |
|||
|
#18+
При данной структуре эту проблему нельзя решить до конца(без использования функций), т.к. уровень иерархии у тебя не ограничен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
18.12.2006, 18:55
|
|||
|---|---|---|---|
|
|||
SQL запрос |
|||
|
#18+
автор уровень иерархии у тебя не ограничен мне нужны только заявки 1 и 2 уровня (т.е. заявки тех сотрудников, для которых непосредственно указан руководителем сотрудник с ключом id или сотрудников руководителем руководителя которых является сотрудник с ключом id ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
19.12.2006, 04:53
|
|||
|---|---|---|---|
|
|||
SQL запрос |
|||
|
#18+
Используй иерархические запросы: тынц ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
19.12.2006, 10:12
|
|||
|---|---|---|---|
|
|||
SQL запрос |
|||
|
#18+
matriculatorкак выбрать все заявки, для которых пользователь пославший заявку является подчиненным пользователя с ключом idаналогично этому matriculatorмне нужны только заявки 1 и 2 уровнядвойной self-join ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=53&mobile=1&tid=2005864]: |
0ms |
get settings: |
9ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
55ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
36ms |
get tp. blocked users: |
1ms |
| others: | 237ms |
| total: | 370ms |

| 0 / 0 |
