我想使用activerecord进行一个sql查询,我很难从多个连接的表中指定一个特定的列。活动记录如何在连接后指定一列?
例如在SQL
select go.id, sequence.name, sequence.id from sequence join (goterms,...) on ...
这是不漂亮,但SQL我的观点是,我能够指定.ID我想回到
在ActiveRecord的我这样做:
results = Sequence.joins(:Foreigndb,:Goterm,:Taxa)
.select(:header,:taxaclass, :genus, :interpro_desc,:description,:dbname,:read_depth, :name)
.distinct
我希望能够从中获取ID:Goterm但:类群和:Foreigndb还使用id作为数据库中的一列,因此我得到我认为从这个问题的时候干我不提供信息的错误 请执行下列操作。
results = Sequence.joins(:Foreigndb,:Goterm,:Taxa)
.select(:header,:taxaclass, :genus, :interpro_desc,:description,:dbname,:read_depth, :name,:id)
.distinct
什么是正确的方式来指定我想Goterm.id?
编辑 - 以下是错误:
的ActiveRecord :: StatementInvalid:Mysql2 ::错误:未知列 'Goterm.id' 在 '字段列表'
当我运行: 结果= Sequence.joins( :foreigndb,:Goterm,:taxa).select(:header,:taxaclass,:genus,:interpro_desc,:description,:dbname,:read_depth,:name,'Goterm.id')。limit(5).offset( 0).dresults = Sequence.joins(:Foreigndb,:Goterm,:Taxa).select(:header,:taxaclass,:genus,:interpro_desc,:description,:dbname,:read_depth,:name,'Goterm.id' ).limit(5).offset(0).distinct
birci我想这一点,但仍然返回了一个错误:结果= Sequence.joins(:Foreigndb,:Goterm,:分类群)。选择(:头, :taxaclass,:genus,:interpro_desc,:description,:dbname,:read_depth,:name,'Goterm.id')。limit(5).offset(0).distinct。再次出现模棱两可的错误 – Zach
您可以发布错误吗? –