Size: a a a

2019 March 15

BB

Boris Beginin in pro.elixir
я так пониаю это надо делать через сабквери
источник

FM

Fey Martynov in pro.elixir
ну ошибка сама за себя говорит: нельзя мапу тут делать |> select([r,i], %{count: count(i.id), recipe_id: r.id})
источник

BB

Boris Beginin in pro.elixir
но как без мапы тут?)
источник

BB

Boris Beginin in pro.elixir
я не могу вернуть ничего кроме мапы тут
источник

FM

Fey Martynov in pro.elixir
могу сразу сказать, что меня напрягает group_by в подзапросе. это скорее всего всосёт
источник

BB

Boris Beginin in pro.elixir
прост без него он считает для всего. тоесть если айди 1 и он у 4х записей он вернет просто 4
источник

BB

Boris Beginin in pro.elixir
а так он вернет 4 раза по 1
источник

BB

Boris Beginin in pro.elixir
как сложно )) всегда у меня были эти проблемы с экто/скулей
источник

FM

Fey Martynov in pro.elixir
я обычно на чистом sql сложные запросы пишу и в базе проверяю, а потом на экто переписываю
источник

FM

Fey Martynov in pro.elixir
через что связаны рецепты и продукты?
источник

BB

Boris Beginin in pro.elixir
has_many :items_memberships, GroceryItemRecipeMembership

has_many :items, through: [:items_memberships, :item]
источник

FM

Fey Martynov in pro.elixir
recipes <-> items <-> item_memberships <-> products, правильно?
источник

BB

Boris Beginin in pro.elixir
неа, продукты тожесамое что и итемы
источник

FM

Fey Martynov in pro.elixir
recipes <-> item_memberships <-> items?
источник

BB

Boris Beginin in pro.elixir
да
источник

FM

Fey Martynov in pro.elixir
SELECT r.*
FROM recipes AS r
INNER JOIN (
   SELECT im.recipe_id, COUNT(im.item_id) AS items_count
   FROM item_memberships AS im
   WHERE im.item_id IN (…)
   GROUP BY im.recipe_id
) AS sub
ON sub.recipe_id = r.id
WHERE sub.items_count = …;


чёто такое?
источник

BB

Boris Beginin in pro.elixir
да наверно! спасибо завтра попробую на экто это перевести
источник

FM

Fey Martynov in pro.elixir
если есть индексы по recipe_id и item_id, то всасывать такой запрос не будет
источник

FM

Fey Martynov in pro.elixir
я вот перевёл на экто и ошибки с тем, что нельзя возвращать мапу в подзапросе нет. и чёт я не понял почему
источник

B

Buckler in pro.elixir
Привет, Serge!

Пожалуйста, реши капчу:

Вычисли: 1+26=...

Осталось попыток: 3
Если не решишь - забаню навеки...
Удачи!
источник