我正在尝试准备一个组合来自3个模型的数据的ActiveRecord查询。 MachineGroups
有Machines
个Outputs
,而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'
答案 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 ;