ActiveRecord 连接语法
我需要使用 ActiveRecord 表达以下连接条件:
SELECT ...
FROM U
LEFT OUTER JOIN F ON U.key = F.foreign_key
AND F.key = ?
WHERE ...
where ?在运行时被替换。
以下内容会导致 SQL 语法错误:
joins("LEFT OUTER JOIN F on U.key = F.foreign_key AND F.key=?", key)
我似乎无法确定 ActiveRecord 是否支持此“动态替换”(无论它被称为什么)。
在 WHERE 子句中添加限制 (where("F.key=?", key)) 会将 OUTER JOIN 折叠为 JOIN。
I need to express the following join condition using ActiveRecord:
SELECT ...
FROM U
LEFT OUTER JOIN F ON U.key = F.foreign_key
AND F.key = ?
WHERE ...
where ? is substituted at run time.
The following causes a SQL-syntax error:
joins("LEFT OUTER JOIN F on U.key = F.foreign_key AND F.key=?", key)
I can't seem to determine if ActiveRecord supports this 'dynamic substitution' (whatever this is called).
Adding the restriction (where("F.key=?", key)) in the WHERE clause will collapse the OUTER JOIN to a JOIN.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这个语法有效:
This syntax worked: