Как запросить Oracle через JDBC для пересечения - PullRequest
0 голосов
/ 10 декабря 2018

Мне нужно проверить из Java, есть ли у определенного пользователя хотя бы одно членство в группе.В Oracle (между прочим, 12) есть большая способность, которая выглядит следующим образом:

DocId  | Group
-----------------
    1  | Group-A
    1  | Group-E
    1  | Group-Z
    2  | Group-A
    3  | Group-B
    3  | Group-W

В Java у меня есть такая информация:

docId = 1
listOfUsersGroups = { "Group-G", "Group-A", "Group-Of-Something-Totally-Different" }

Я видел решения, подобные это , но я не хочу подходить так.Я хотел бы сделать что-то вроде этого (я знаю, что это неправильный синтаксис) ...

SELECT * FROM PERMSTABLE WHERE DOCID = 1 AND ('Group-G', 'Group-A', 'Group-Of-Something-Totally-Different' ) HASATLEASTONE OF Group

... и не использовать какие-либо временные вставки SQL.В результате после выполнения этого запроса я узнаю, что у моего пользователя есть совпадение, поскольку он является членом Group-A.

1 Ответ

0 голосов
/ 10 декабря 2018

Вы можете сделать это (используя условие IN):

SELECT * FROM PERMSTABLE WHERE DocId = 1 AND Group IN 
            ('Group-G', 'Group-A', 'Group-Of-Something-Totally-Different')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...