在rails上的ruby中编写带有多个表的连接查询

时间:2015-04-11 16:05:16

标签: sql ruby-on-rails postgresql

我有Downloaded Document模型,其中包含有关用户下载文档的数据,downloaded_documents表的模式是

id document_id document_type user_id
 1     444      article        1    
 2     120      judgment       2
 3     444      article        1
 4     555      rule           3
 5     555      rule           4

现在我想为所有下载的文档及其用户生成报告。并且下载的文档和用户模型之间没有关系,每个document_type只在我们的应用程序中的每个模型中,所以我也想要一个文档信息也是用户信息。那我怎么写一个查询?

我写了以下查询:

DownloadedDocument.joins("JOIN users ON downloaded_documents.user_id = users.id").select("distinct on (downloaded_documents.document_id, downloaded_documents.user_id, downloaded_documents.document_type) users.email, document_type.created_at").where('created_at >=? and created_at <= ?',Date.parse(from_date), Date.parse(to_date))

但我没有收到文件信息。我应该在上面的查询中再添加一个JOIN,这只是我需要添加文档类型名称的地方JOIN on ------downloaded_documents.document_id = -----.id,但对于ALL我想要document_type中提到的所有模型,那我怎么写查询呢?

我的文章模型架构

ID  title
444 first title

判断模式

ID  appellant_name respondent_name case_no
120   ddd               gggg         abc.123

规则架构

ID  rule_name
555  example

我想要一个像这样的输出:

{'judgment' => [{case_no: 'abc.123',email: 'abc.example.com', dcoument_id: 120}], 'article' => [{title: 'first title', email: 'ads@example.com', document_id: 444},{title: 'first_title', email: 'fff@example.com', document_id: 444}]}

我想生成一份报告以列出文档及其用户

0 个答案:

没有答案