My dataset is:
# select * from test;
list | locked
---------+--------
{a,b,c} | t
{f,g,h} | f
{c,d,e} | f
I need to select locked=FALSE rows with list values not intersecting with any locked=TRUE row.
By now, I'm stuck with:
# SELECT * FROM test WHERE NOT locked and NOT list && (SELECT list FROM test WHERE locked);
list | locked
---------+--------
{f,g,h} | f
(1 row)
Works but looks overheaded by comparing each locked=TRUE row. I'm looking for a way to select aggregated set of all locked=TRUE list values and compare it once for each locked=FALSE row.