我需要有关 SELECT FROM 嵌套 SELECT 的帮助。
如何以 ActiveRecord 方式重写以下查询并获取 Relation 对象?
SELECT candidates.*
FROM (SELECT (candidates.first_name || ' ' || candidates.last_name) AS full_name, candidates.* FROM candidates) candidates
WHERE full_name = 'Anton Kolganov'
为什么要连接而不是根据名字和姓氏进行选择?子查询的性能会比直接查询低得多。您可以使用以下命令获取全名select
范围(可以像其他属性一样访问它):
Candidate.select("candidates.*, (first_name || ' ' || last_name) AS full_name").
where(first_name: 'Antonov', last_name: 'Kolganov')
Update:如果您确实需要使用子查询重写上述查询FROM
子句到 ActiveRecord,您可以执行以下操作:
Candidate.from("(SELECT (candidates.first_name || ' ' || candidates.last_name) AS full_name, candidates.* FROM candidates) candidates").
where(full_name: 'Anton Kolganov')
也就是说,一般来说,您可以将任何有效的 SQL 放入 ActiveRecord 范围方法中,包括select
, from
, etc.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)