Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/53.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql rails多个连接和函数_Sql_Ruby On Rails_Ruby On Rails 3_Activerecord - Fatal编程技术网

Sql rails多个连接和函数

Sql rails多个连接和函数,sql,ruby-on-rails,ruby-on-rails-3,activerecord,Sql,Ruby On Rails,Ruby On Rails 3,Activerecord,我有一个sql: select al.name, date_trunc('day', rc.start_date) as d, min(rc.start_date) from records rc inner join relations rl on rl.record_id=rc.id inner join aliases al on rl.alias_id=al.id where rc.user_id=2 and ( al.contact_id<>2 or al.conta

我有一个sql:

select al.name, date_trunc('day', rc.start_date) as d, min(rc.start_date)
from 
records rc inner join relations rl 
on rl.record_id=rc.id 
inner join
aliases al on rl.alias_id=al.id
where rc.user_id=2 and ( al.contact_id<>2 or al.contact_id is null)
group by al.name, d
order by d DESC
和型号:

class Alias < ActiveRecord::Base
  belongs_to :contact
  has_many :relations, :dependent => :destroy
  has_many :records, :through => :relations 
  belongs_to :user
end

class Record < ActiveRecord::Base
  has_many :relations, :dependent => :destroy
  has_many :aliases, :through => :relations
  belongs_to :user
end

class Relation < ActiveRecord::Base
  belongs_to :record
  belongs_to :alias
end

class Contact < ActiveRecord::Base
  has_many :aliases
  belongs_to :user
end

class User < ActiveRecord::Base  
  has_many :aliases
  has_many :contacts
  has_many :records
end

如何编写以rails方式表示的sql查询

要获得特定的答案,您需要添加用户和联系人模型,这两个模型都在SQL中引用。如果你能用文字描述你正在尝试做的事情,这将使rails查询更加明显,这也会很有帮助,因为rails查询将更接近你正在尝试做的事情的自然语言描述。我同意Marc的观点。另一条评论是,不管是SQL还是Rails,您都在为三个模型的名称使用SQL或Rails中的保留字或两者中的保留字而烦恼。有什么方法可以改变它们,使它们在应用程序上下文中更具语义意义吗?好的,我添加了用户和联系人模型。更多说明:我有一个系统,它记录了一些与联系人相关的记录。联系人可以通过多种方式定义,这就是创建与联系人相关的别名的原因。每天可能有数千条记录。我想创建一些列表,在这些列表中,数千人将在一些包中按天分组,以便轻松跟踪记录。我在考虑是否应该有一个单独的模型来按天分组聚合记录包。我希望描述足够清楚:关于名字,是的,我已经有了一些问题,但这些名字对我的申请来说是最有意义的,所以现在它必须保留。但你是对的,将来我会改变它。