AR查询中嵌套的SQL SELECT

时间:2017-07-27 19:01:03

标签: sql ruby-on-rails activerecord

我正在尝试准备一个组合来自3个模型的数据的ActiveRecord查询。 MachineGroupsMachinesOutputs,而SELECT * FROM machines LEFT OUTER JOIN (SELECT * FROM outputs WHERE outputs.created_at >= "2017-07-25 05:00:00" AND outputs.created_at < "2017-07-26 17:00:00") AS o ON machines.id = o.machine_id WHERE machines.machine_group_id = 1; 可能有很多Select * from TableA where ID = '123' 。我希望有一个查询从给定的机器组中选择所有机器,并且在给定的时间范围内输出,这意味着如果机器在给定的时间范围内输出为零 - 应该包含在列表中,但没有输出数据。

SQL代码:

Update tableA 
Set columnA = 'xxx',
columnB = 'abc',
columnC = 'xyz'
Where ID = '123'

Select * from TableA where ID = '123'

1 个答案:

答案 0 :(得分:1)

应该像

SELECT m.* 
FROM machines m
LEFT OUTER JOIN outputs o ON m.id = o.machine_id
    AND o.created_at >= '2017-07-25 05:00:00'
    AND o.created_at < '2017-07-26 17:00:00'
WHERE m.machine_group_id = 1 ;