如何使用Ruby Sequel加入3个表?

时间:2014-03-22 21:26:43

标签: sql ruby join sequel

我有一个数据库,其中笔记本和Notes具有many_to_many关系,而Notes和Facts具有many_to_many关系。如何使用Ruby Sequel查询与给定Notebook关联的事实(通过注释间接关联)。我应该在笔记本和事实之间创建另一个many_to_many关系吗?会更快吗?

1 个答案:

答案 0 :(得分:5)

Sequel附带了一个many_through_many插件,允许通过多个连接表在模型之间进行查询:

Notebook.plugin :many_through_many
Notebook.many_through_many :facts,
  :through=>[
      [:notebooks_notes, :notebook_id, :note_id],
      [:notes, :id, :id],
      [:facts_notes, :note_id, :fact_id]
    ]

n = Notebook.first
n.facts
相关问题