EXISTS predicate
The exists predicate tests for the presence or absence of a condition specified by a subselect
EXISTS ( subselect )EXISTS collection-valued-path-expression
The result of EXISTS is true if the subselect returns at least one value or the path expression evaluates to a nonempty collection, otherwise the result is false.
To negate an EXISTS predicate, precede it with the logical operator NOT.
Return departments that have at least one employee earning more than 1000000
SELECT OBJECT(d) FROM DeptBean d WHERE EXISTS ( SELECT 1 FROM IN (d.emps) e WHERE e.salary > 1000000 )
Return departments that have no employees
SELECT OBJECT(d) FROM DeptBean d WHERE NOT EXISTS ( SELECT 1 FROM IN (d.emps) e)
The above query can also be written as follows
SELECT OBJECT(d) FROM DeptBean d WHERE NOT EXISTS d.emps