我需要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 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'
2条答案
按热度按时间gzjq41n41#
为什么要连接而不是根据名字和姓氏进行选择?子选择的性能将远远低于直接查询。您可以使用
select
作用域获取全名(它可以像其他属性一样访问):**更新:**如果你真的需要将上面的查询与
FROM
子句中的subselect重写为ActiveRecord,你可以这样做:也就是说,一般来说,你可以将任何有效的SQL放入ActiveRecord作用域方法中,包括
select
、from
等。axr492tv2#
有多种方法。您必须通过将查询转换为SQL或检查结果来尝试查看结果是否符合您的需要。
你也可以用join或者select代替where。
如果你不想使用普通的sql,你可以使用像Arel或Squeel这样的gem