【发布时间】:2021-01-01 19:07:14
【问题描述】:
我正在尝试提取一个需要在 SQL 中访问多态关联表两次的查询(我需要在两个“类型”上都加入它)
这是 SQL 表的结构。
Answer: id, user_id
UserGroup (polymorphic): usergroupable_type, usergroupable_id, group_id
User (polymorphic column groupable_type: 'User'): id, name
AdminUser (polymorphic column groupable_type: 'AdminUser') : id, name
Group: id, name
我想从“Answer”表中查询每个单独的答案,在 User.id == Answer.user_id 上使用“User”表进行内部联接,并使用“UserGroup”表进行内部联接以获得那些的“group_id”使用 usergroupable_type == 'User' 和 usergroupable_id == User.id 这样我就可以加入 'Group' 表以获取 Group.name。
之后,我想通过连接 usergroupable_type == 'AdminUser' 上的多态 'UserGroup' 表从 'AdminUser' 表中获取 AdminUser.name。
基本上,我想获取“Answer”表中每行的 Group.name、AdminUser.name。
【问题讨论】:
-
样本数据、所需结果和适当的数据库标签都会让这一切变得更加清晰。
标签: sql polymorphic-associations