Size: a a a

2021 January 26

IZ

Ivan Zaitsev in Random Ruby Chat
Roman V
какой запрос SQL генерится
SELECT DISTINCT ns.* FROM ns INNER JOIN xs ON xs.n_id = id INNER JOIN ys ON ys.n_id = id WHERE (ys.active = false OR xs.active = false)
источник

IZ

Ivan Zaitsev in Random Ruby Chat
ruuke
А промежуточная таблица не нужна разве для такой связи?
Та нет вроде, Y же belongs_to N строго, так же как и X
источник

RV

Roman V in Random Ruby Chat
аа ну смотри
источник

RV

Roman V in Random Ruby Chat
у тебя условие не работает
источник

RV

Roman V in Random Ruby Chat
у тебя получаются строчки в таблице промежуточной типа (N, X, Y) которые матчятся по айди
источник

r

ruuke in Random Ruby Chat
Аа, сори, не увидел что там три таблицы у тебя
источник

RV

Roman V in Random Ruby Chat
ты говоришь достань мне такие у которых либо X false либо Y false
источник

RV

Roman V in Random Ruby Chat
ну он и достает скажем строку
источник

RV

Roman V in Random Ruby Chat
видит ага X - false
источник

RV

Roman V in Random Ruby Chat
и дальше ему насрать уже что в Y true
источник

IZ

Ivan Zaitsev in Random Ruby Chat
Да, вот до этого я дошел. И не могу теперь понять а как же тогда запрос строить
источник

RP

Roman Patkin in Random Ruby Chat
Ну да, там and нужен, и условие на is null
источник

VS

Viacheslav Soldatov in Random Ruby Chat
мож ченить такое?

 WITH not_active_nx AS (
  SELECT n.id
  FROM n
    LEFT JOIN x ON n.id = x.n_id
  WHERE x.active = false OR x.active IS NULL
), not_active_ny AS (
  SELECT n.id
  FROM n
    LEFT JOIN y ON n.id = y.n_id
  WHERE y.active = false OR y.active IS NULL
)

SELECT not_active_nx.id
FROM not_active_nx
 INNER JOIN not_active_ny ON not_active_nx.id = active_ny.id
источник

IZ

Ivan Zaitsev in Random Ruby Chat
Roman Patkin
Ну да, там and нужен, и условие на is null
Можешь мой запрос отредактировать если есть понятие куда это впихнуть?
источник

RP

Roman Patkin in Random Ruby Chat
Ivan Zaitsev
Можешь мой запрос отредактировать если есть понятие куда это впихнуть?
(y.active = false OR y.active is null) and (также для x)
источник

RP

Roman Patkin in Random Ruby Chat
Ivan Zaitsev
Можешь мой запрос отредактировать если есть понятие куда это впихнуть?
В where
источник

IZ

Ivan Zaitsev in Random Ruby Chat
Roman Patkin
(y.active = false OR y.active is null) and (также для x)
Сейчас попробую
источник

RV

Roman V in Random Ruby Chat
where (y.active IN (false, NULL) and x.active IN (false, NULL))
источник

RV

Roman V in Random Ruby Chat
отредактируй там чтоб по-эскуэльному было
источник

RV

Roman V in Random Ruby Chat
должно работать
источник