хочет вываривать решение — есть отношение один ко многим и условие на сторону много. Как мне выбрать все стороки со стороны один, которые либо не имеют строк в стороне много либо все они удовлетворяют условию?
где нет ассоциаций понятно, со вторым чёт тупняк....
LEFT JOIN и GROUP BY одно HAVING COALESCE(bool_and(условие), true)
Я, кстати, подумал (но не до письма было пару часов) -- херовый у меня вариант, примерно никто не сможэт пробиться через coalesce/bit_and с индэксами, будет все соответствующие записи из таблицы просматривать. Вот такое попрямее будет: t1 LEFT JOIN t2 ON t2.t1_id=t1.id AND NOT (условие) WHERE t2.id IS NULL
Звучит вкусно, отнесу в закладки на будущее, потому что второй раз сталкиваюсь, спасибо! Но там был разовый кейс и в таблице 20к строк. так что сработал тот вариант)
Обсуждают сегодня