我之前问过一个关于建模 MySQL 数据建模帮助的问题。建议是标记为角色和发起人的多个表的图表。
现在我正在尝试编写查询并在苦苦挣扎。这就是我一直放弃并寻找可能更简单的数据库模型的地方,但现在我知道这行不通,我需要一些建议。
当我有一个 event_id 和一个 user_id 时,我需要检查是否允许此领导者编辑此事件。如果他们被允许
如果在活动、项目或赞助活动或项目的组织的任何这些领导职位中找到此 user_id,则此用户/领导可以编辑。
我不确定如何编写如此复杂的查询。以下查询坚持 user_id 存在于所有三个 user_role 表中,而它只需要出现在一个表中。
SELECT count(*)
FROM user AS u
JOIN user_event_role AS uer ON (uer.user_id=u.id)
JOIN user_project_role AS upr ON (upr.user_id=uer.id)
JOIN user_organization_role AS uor ON (uor.user_id=upr.user_id)
JOIN event_sponsor AS es ON (es.organization_id=uor.organization_id)
JOIN project_sponsor AS ps ON (ps.project_id=upr.project_id)
WHERE
uer.term_to >= CURRENT_DATE() AND
upr.term_to >= CURRENT_DATE() AND …Run Code Online (Sandbox Code Playgroud)