Size: a a a

2021 January 26

NB

Nikita Batrak in Random Ruby Chat
чтобы просто строить запрос "а-ля" select * from n where = ...
источник

IZ

Ivan Zaitsev in Random Ruby Chat
Попробую в сыром SQL написать, потом уже смотреть как под ActiveRecord или хотя бы под Arel, не знаю правда имеет ли смысл) Пиздец же будет по ходу
источник

NB

Nikita Batrak in Random Ruby Chat
да почему это? find_by_sql в помощь
источник

NB

Nikita Batrak in Random Ruby Chat
замапит все в массив объектов
источник

IZ

Ivan Zaitsev in Random Ruby Chat
В любом случае, с меня пиво, хорошее) Залетайте в Киев если вдруг таки будет шанс)
источник

IZ

Ivan Zaitsev in Random Ruby Chat
300 лет бы ещё с этим ебался, спасибо
источник

IZ

Ivan Zaitsev in Random Ruby Chat
Я просто почему то был уверен что стандартным SQL решить это реально, потому и плясал вокруг этого. А если вы говорите что нет, надо было сразу смотреть уже на фичи Postgres
источник

NB

Nikita Batrak in Random Ruby Chat
да через cte вполне реально
источник

NB

Nikita Batrak in Random Ruby Chat
@ivan_zaitsev а в итоге то работает?
источник

IZ

Ivan Zaitsev in Random Ruby Chat
Nikita Batrak
@ivan_zaitsev а в итоге то работает?
Сейчас вот как раз пишу, буду пробовать
источник

IZ

Ivan Zaitsev in Random Ruby Chat
Nikita Batrak
@ivan_zaitsev а в итоге то работает?
Ругнулось на синтакс эррор, но я вроде правильно всё переписал
источник

D

Dimon in Random Ruby Chat
скорее всего неправильно написал, очевидно же
источник

IZ

Ivan Zaitsev in Random Ruby Chat
Тупо скопировал и через Replace заменил просто N, X и Y
источник

IZ

Ivan Zaitsev in Random Ruby Chat
Странно
источник

IZ

Ivan Zaitsev in Random Ruby Chat
<<~SQL же нормально подходит под то чтобы кверю сохранить, так ведь?
источник

NB

Nikita Batrak in Random Ruby Chat
по идее да, напиши тесты)
источник

IZ

Ivan Zaitsev in Random Ruby Chat
Nikita Batrak
@ivan_zaitsev а в итоге то работает?
Я либо скобки напутал, либо он таки не выводит те где нет вообще X и Y
источник

IZ

Ivan Zaitsev in Random Ruby Chat
select
       n.*,
       array_cat(array_agg(x.active), array_agg(y.active))
     from
     n
     left join x on x.n_id = n.id
     left join y on y.n_id = n.id
     group by n.id
     having (array_cat(array_agg(x.active), array_agg(y.active)) = ARRAY[]::bool[]) or
       (array_cat(array_agg(x.active), array_agg(y.active)) @> ARRAY[false]::bool[] and not
         array_cat(array_agg(x.active), array_agg(y.active)) @> ARRAY[true]::bool[])
источник

IZ

Ivan Zaitsev in Random Ruby Chat
я может где то не там впихнул где OR
источник

IZ

Ivan Zaitsev in Random Ruby Chat
или AND NOT
источник