jpql INTERSECT без INTERSECT - PullRequest
       4

jpql INTERSECT без INTERSECT

2 голосов
/ 06 мая 2011

у меня есть четыре запроса, которые возвращают интергеры.

select listOfIntegers from [something]...

( редактировать: результаты строки)

и нужен способ сделать

select ...
intersect
select ...
intersect
select ...
intersect
select ...

но в jpql нет пересечения как такового.

Итак, есть ли способ имитировать поведение, используя какой-то другой jpql для получения того же результата?

(для тех, кто не уверен в пересечении) в основном мне нужно получить все значения, которые появляются во ВСЕХ выборках ...

result from select 1: 1,2,3,4
result from select 2: 1,2,5,6
result from select 3: 1,2,7,8
result from select 4: 1,2,9,0

so the result i want with intersect: 1,2

Огромное спасибо

p.s. нет никаких шансов использовать что-либо другое, кроме JPQL :( никаких собственных запросов и т. д. ...

1 Ответ

3 голосов
/ 06 мая 2011

Можете ли вы использовать что-то вроде этого:

select s1.result
  from select_1 as s1
 where exists (
               select *
                 from select_2 as s2
                where s2.result = s1.result
              )
       and exists (
                   select *
                     from select_3 as s3
                    where s3.result = s1.result
                  )
       and exists (
                   select *
                     from select_4 as s4
                    where s4.result = s1.result
                  );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...