![](/img/trans.png)
[英]Join Query from 2 Table in 2 Different Databases in CodeIgniter
[英]SQL Query to conditionally join columns from different databases
我正在将数据从旧数据库迁移到新数据库。 我的目标是将用户的权限从旧数据库移到新数据库。 新旧数据库都已经具有匹配的用户ID。
问题在于旧数据库对每个用户的权限都有多行(例如,根据表第二列中的组织ID,用户#3可能有5行具有不同的权限集。
我怎样才能:
仅使用每个用户的最高权限填充新表(“ Admin”是最高权限,“ Read”权限是最低权限)
OLD_DB USER TABLE:
ID ORG ADMIN EDIT READ
1 43 0 1 0
1 200 1 0 0
1 76 0 0 1
2 43 0 1 0
2 76 0 0 1
NEW_DB用户表:
ID LEVEL
1 0
2 0
3 0
4 0
5 0
NEW_DB用户表目标:
ID LEVEL
1 ADMIN
2 EDIT
3 READ
4 READ
5 EDIT
我对用户的“ ORG”关系不再感兴趣,只希望获得他们的最高权限。
我正在使用Sequel Pro,它可能会在GUI中提供解决方案,但我不知道。 我最近在代码中仅获取管理员用户(没有运气)的尝试是:
SELECT admin FROM old_db.user oldpermission
JOIN scope FROM homestead_test.users newpermission
ON oldpermission.ID = newpermission.ID;
SELECT ID, CASE WHEN MAX(ADMIN) = 1 THEN 'ADMIN'
WHEN MAX(EDIT) = 1 THEN 'EDIT'
WHEN MAX(READ) = 1 THEN 'READ'
END as LEVEL
FROM OLD_DB
GROUP BY ID
您可能可以简化最后一个
ELSE 'READ'
因为,如果前两个失败,那么只有READ
权限可用
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.