|
SQL запрос
|
|||
---|---|---|---|
#18+
Добрый день. Столкнулся со следующей проблемой. Есть таблица SUBJ которая содержит в себе 2 колонки: имя пользователя, группа доступа. Примерное содержание: username group Er4SuS group 1 Er4SuS group 2 Er4SuS group 3 AnyUser group 1 AnyUser group 2 На входе у меня есть список пользователей, мне нужно вывести только те группы в которых прописаны все пользователи на входе. 2 очевидных, но трудоемких варианта в случае если на входе ~ 50 пользаков: 1) SELECT t1.group FROM (SELECT group FROM SUBJ WHERE username = 'Er4SuS') a, (SELECT group FROM SUBJ WHERE username = 'AnyUser') b WHERE a.group = b.group 2) SELECT group FROM SUBJ s WHERE EXISTS (SELECT * FROM SUBJ s# WHERE s#.username = 'Er4SuS' and s#.group = s.group) and EXISTS (SELECT * FROM SUBJ s# WHERE s#.username = 'AnyUser' and s#.group = s.group) Результат запроса: group1 и group2 Может быть есть какой-нибудь хитрый вариант, у меня получалось сделать через count, но в итоге получаю только одну группу, а таких групп может быть несколько, в моем случае нужно вывести группы, в которых прописаны все 54 пользователя по списку. Таких групп 8 (приседал со сцепкой в excel по способу 1) ) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2020, 13:56 |
|
SQL запрос
|
|||
---|---|---|---|
#18+
Первое, что в голову пришло: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2020, 14:13 |
|
SQL запрос
|
|||
---|---|---|---|
#18+
PuM256, если пары u, g неуникальны, нужен дистинкт .... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2020, 14:18 |
|
|
start [/forum/topic.php?fid=52&fpage=43&tid=1881127]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
33ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
others: | 298ms |
total: | 415ms |
0 / 0 |