Я пытаюсь сделать приведенный ниже SQL-оператор в GORM
select * from table1 where table1.x not in
(select x from table 2 where y='something');
Итак, у меня есть две таблицы, и мне нужно найти записи из таблицы 1, которых нет в таблице 2. В Grails
def xx= table2.findByY('something')
def c = table1.createCriteria()
def result= c.list {
not (
in('x', xx)
)
}
синтаксис неправильный, и я не уверен, как имитировать не в sql логике.
В качестве учебного пособия, если кто-то может также сказать мне, почему оператор минус (-) в grails / groovy не работает со списком. Я пытался получить x и y отдельно и делать x.minus (y), но это не меняет список. Я увидел объяснение в Groovy в списке Grails - не работает? , но я ожидаю, что список определен локально.
Большое спасибо.