@proRuby

Страница 527 из 1594
Alexander
25.04.2017
11:32:22
а может разбить на два запроса как-то
У тебя "А джоин Б где поле не что-то"

В зависимости от типа джоина варируется результат

Oleg
25.04.2017
11:33:13
у меня left_join

это, если я правильно помню все A + принадлежащие им B

Google
Alexander
25.04.2017
11:33:33
у меня left_join
А нужен right или inner

Alex
25.04.2017
11:33:42
нет )

нужен левый )

просто через where он отсеивает там где B == NULL

а ему надо B.fields == NULL

Alexander
25.04.2017
11:34:11
это, если я правильно помню все A + принадлежащие им B
Да, но будут нулловые поля, где не будет найдено соответствие по условию

Oleg
25.04.2017
11:34:14
inner наоборот отсеет все A без B

Alexander
25.04.2017
11:34:19
нужен левый )
Нулл же будет

Alex
25.04.2017
11:34:27
Короч, берешь какое то поле

Oleg
25.04.2017
11:34:36
A right вернет мне кучу B

Alex
25.04.2017
11:34:38
По которому делаешь обратное условие.

например B.id != NULL

Alexander
25.04.2017
11:34:48
А ему отсеять А нужно в зависимости от полей в Б

Google
Alex
25.04.2017
11:34:51
Должно сработать я думаю.

Alexander
25.04.2017
11:34:55
И это вроде не лефт

Lupsick
25.04.2017
11:34:59
вот я щас дрочу запрос, который имеет 174 строчки

а вы left от right join'a не можете отличить

Alexander
25.04.2017
11:35:16
Но у меня уже мозги киснут ?

Oleg
25.04.2017
11:35:35
Короче, давайте примем за истину, что я не накосячил с типом join

потому что это так

Lupsick
25.04.2017
11:35:52
давай ты просто напишешь отношения между таблицами и что тебе нужно

и я тебе напишу обычный sql

без orm'a

Alex
25.04.2017
11:35:59
И это вроде не лефт
Лефт это все A и B != NULL

Alexander
25.04.2017
11:36:08
Lupsick
25.04.2017
11:36:14
я не страдаю

люблю sql

Alexander
25.04.2017
11:36:22
Лефт это все A и B != NULL
Ну так нужно же отсечь А, не?

Alex
25.04.2017
11:36:30
люблю sql
большинство не любят sql, ты им подлянку делаешь

Но мы конечно же думаем только о себе.

Lupsick
25.04.2017
11:36:47
постгрес такой мощный пиздец

Alex
25.04.2017
11:36:50
Ну так нужно же отсечь А, не?
ему нужно отсечь A где B.fields{} != NULL

Alexander
25.04.2017
11:37:13
Google
Oleg
25.04.2017
11:37:17
и я тебе напишу обычный sql
A has_one B. Нужно вернуть все A где A.B == null || A.B.field != null

Lupsick
25.04.2017
11:39:41
SELECT * FROM A LEFT JOIN B ON B.ID = A.B_ID WHERE B.ID IS NULL UNION SELECT * FROM A INNER JOIN B ON B.ID = A.B_ID WHERE B.FIELD IS NOT NULL

Sasha
25.04.2017
11:39:47
Еще раз А и Б (сидели на трубе) Нужно вернуть все А 1) У которых - B не равны нулю определенные поля 2) все записи А у которых нет принадлежащей B

Alex
25.04.2017
11:40:11
union это два внутренних запроса, не?

зачем так жить

Lupsick
25.04.2017
11:40:27
юнион охуенная штука

Oleg
25.04.2017
11:40:30
Боже, спасибо, я и забыл уже про этого мерзавца

Alex
25.04.2017
11:40:53
не помню умеет AR в OR или нет.

Lupsick
25.04.2017
11:41:00
нахуй натягивать сову на глобус если можно сделать нормально

Lupsick
25.04.2017
11:41:54
union это два внутренних запроса, не?
бд все равно оптимизирует и выполняет один

Lupsick
25.04.2017
11:42:18
вообще постгресу например похуй на сложность запроса

если там внутренние селекты и проч

Sasha
25.04.2017
11:44:25
ну важно не только сложность запроса, а размер бд.

Lupsick
25.04.2017
11:45:03
если 1-2 млн записей то ему тоже похуй

Alex
26.04.2017
14:53:25
2.3.1 (app)[18] » [3.years.to_i, 36.months.to_i] => [94672800, 93312000] 2.3.1 (app)[19] » 3 * 12 => 36

Бредово как то

Где я тут ошибся?

Alexander
26.04.2017
14:56:25
Где я тут ошибся?
високосные?

Google
A
26.04.2017
14:57:07
в трех годах?

Alex
26.04.2017
14:57:17
A
26.04.2017
14:57:36
ну не факт что в трех годах будет один високосный год

надо смотреть в соус ActiveSupport::Duration.to_i

Ярослав
26.04.2017
14:58:16
тут дело в количестве дней в месяце похоже

Alexander
26.04.2017
14:58:36
в трех годах?
в последних трёх был, он может относительно текущей даты смотрит

Admin
ERROR: S client not available

Alexander
26.04.2017
14:58:39
а может и сумма этого

Slava
26.04.2017
14:58:48
12.month.to_i это 30.days.to_i * 12, а не 365.days.to_i активсаппорт не такой умный =)

Ярослав
26.04.2017
14:59:09
он месяцы по 30 дней считает

Alex
26.04.2017
15:00:16


Felix
26.04.2017
15:03:35
2.3.0 :181 > 12.months == 1.year => false

2.3.0 :184 > 365.days == 1.year => false

Alex
26.04.2017
15:04:23
life == good => false

Felix
26.04.2017
15:04:35
последнее меня смущает)

Alex
26.04.2017
15:04:38
а вообще спасибо да, вечером голова уже отключается, да и даты не люблю.

Felix
26.04.2017
15:04:45
чем 365.days отличаются от 1.year?

Alex
26.04.2017
15:04:57
там какие нибудь замуты с датами опять.

Felix
26.04.2017
15:05:39
разница в 6 часов почему-то

Google
Ярослав
26.04.2017
15:09:45
похоже это связано с високосными годами

накапливается погрешность по 6 часов в год

и за 4 года получаем одни сутки дополнительные

Felix
26.04.2017
15:10:53
а точняк

vc93
26.04.2017
16:33:44
поправте, если я что-то не так понял. блоки и проки выполняются там, где были обьявлены, а методы там, в каком контексте были вызваны. верно?

Eugene
26.04.2017
20:11:04
Там есть лямды и проки

При вызове p (where p - Proc.new{}) возвращается место в памяти, lamda также только + пометка lambda

Разница при испольнение keyword return Proc возвращается к коду от куда был вызван Lambda возвращает код сразу же за пределами lambda кода

Sergey
26.04.2017
20:17:22
Почему возвращает false, а в переменной true? var = true and false => false var => true

ojab
26.04.2017
20:18:45
потому что (var = true) and false, очевидно

Sergey
26.04.2017
20:21:34
аа, потому что приоритет and даже выше чем = ?

Klim
26.04.2017
20:43:07
у && выше, а у and ниже.

Igor
26.04.2017
20:44:11
Не используйте and/or

Просто не используйте

Также как и not

Страница 527 из 1594