【发布时间】:2019-07-21 10:30:35
【问题描述】:
您好,我有几个用于仪表板、用户、user_dahboard、user_organisation 的表。下面是表架构。
dashboard_user
id user_id dashboard_id
1 2 1
2 1 1
3 4 2
4 1 2
org_user
id user_id org_id
1 1 1
2 2 1
3 3 2
4 4 2
仪表板
id dashboard_title
1 World's Bank Data
2 Births
3 Unicode Test
现在我想从同一个组织用户那里获取所有仪表板。就像用户 id 1 可以看到由同一组织用户开发的所有仪表板。我做了同样的查询
SELECT
dashboards.id AS dashboards_id
FROM
dashboards
JOIN dashboard_user AS dashboard_user_1 ON dashboards.id = dashboard_user_1.dashboard_id
JOIN organization_user AS organization_user_1 ON organization.id = organization_user_1.org_id
JOIN ab_user ON ab_user.id = dashboard_user_1.user_id
WHERE ab_user.id = 1
对于 where 条件 usr_id=1 的预期结果应该返回属于与 user1 具有相同组织的用户的所有dashboard_id。
结果
user org dashboard
1 1 1
2 1 2
【问题讨论】:
-
你得到了什么结果?此外,您为什么要使用两个 DBMS 进行标记?
-
我希望为来自同一组织的用户过滤仪表板。就像我把 where user = 1 比它应该给属于同一组织用户的所有仪表板一样。
-
您能在问题中分享预期的样本结果吗?
-
“可以看到同一组织用户开发的所有仪表盘”是什么意思?
-
你的结果是错误的,如何期望属于同一组织的用户创建的仪表板,
org列有 2 个不同的值!
标签: mysql sql postgresql