[英]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.