SQL 如何查询 has_many_through 关系

SQL How to query a has_many_through relationship

我有三个模型具有这样的 has_many_through 关系:

class Tag < ActiveRecord::Base
  has_many :tag_workspaces
  has_many :workspaces, through: :tag_workspaces, dependent: :destroy
end
class Workspace < ActiveRecord::Base
  has_many :tag_workspaces
  has_many :tags, through: :tag_workspaces, dependent: :destroy
end
class TagWorkspace < ActiveRecord::Base
  belongs_to :tag
  belongs_to :workspace
end

我需要使用 sql 语言编写查询以获取属于特定工作区的所有标签。 到目前为止,我的查询如下所示:

select '0' as "value", 'Seleziona un Tag' as "name"
union all
SELECT name AS "value",
       name
FROM tags

但是我只需要 select 例如属于工作区 1 的标签。我怎么能做到这一点?非常感谢!

在 SQL 中,这将是...

select t.*
from   tags t
join   tag_workspaces tw on tw.tag_id = t.id
join   workspaces w on w.id = tw.workspace_id
where  w.id = 1