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

Мне нужно сделать запрос на Rails, где выбираются записи, сравнивающие два атрибута двух записей.

Например:

SELECT p.id, u1.id, u2.id FROM User u1, User u2, person p 
WHERE u1.weekDay = u2.weekDay AND u2.initialTime - u1.endTime < 0 
AND u2.id != u1.id AND u1.initialTime < u2.initialTime

В частности, в этой части where u2.initialTime - u1.endTime < 0, как я могу поместить 2 объекта в where(endTime: :initialTime)?

Благодарить.


person smoK    schedule 08.01.2015    source источник


Ответы (1)


где u2.initialTime - u1.endTime ‹ 0

Вы можете реорганизовать это, чтобы:

u2.initialTime ‹ u1.endTime, поскольку a-b‹0 эквивалентно a ‹ b:

http://www.wolframalpha.com/input/?i=a-b+%3C0&x=0&y=0

Также вы можете использовать where для выполнения сравнений, например:

User.where('created_at < updated_at')
person Paulo Fidalgo    schedule 08.01.2015