如何转换:
SELECT Table1.id FROM Table1
INNER JOIN Table2
INNER JOIN Table3
INNER JOIN table4
INNER JOIN Table5
LEFT JOIN Table6 ON Table6.id = Table5.table6_id
字符串
已更新示例,名称为:
SELECT Student.id FROM Table1
INNER JOIN student_notes ON student_notes.student_id = student.id
INNER JOIN notes ON notes.id = student_notes.note_id
INNER JOIN note_tags ON note_tags.note_id = notes.id
INNER JOIN tags ON tags.id = note_tags.tag_id
LEFT JOIN computer_labels ON computer_labels.id = tags.label_id
型
导入Rails ORM语法:类似这样的东西,而不使用原始查询
Table1.joins(Table2: { Table3: { Table4: :table5 }})
型
缺少的左join Table6怎么添加?
1条答案
按热度按时间y1aodyip1#
对于
inner joins
,语法非常简单(假设您正确定义了模型中的所有关联):字符串
但是,尽管
ActiveRecord
有一个left_outer_joins
方法,但在这种情况下它并没有帮助,因为您不想外部连接从students
开始的每个表。因此,我只需要使用字符串语法手动添加最后一个join,如下所示:型
请注意,在定义其他
has_many ... through:
关联时,可以简化这些联接和其他查询。