我有一點瘋狂的結構,我的數據庫中,用戶和orgniations都在同一個表(如下所示)MySQL的選擇用另一個選擇內部
他們都與PARENTID和MEMBERID連接,我需要得到的是: 獲取所有 「人」 的name
,他們MEMBERID
以及他們父母的name
結果應該是這樣的:表中的
UserName1 | DHAD781 | OrgName1
例子:
下面是實例Db的樣子:
-------*/*------------*/*------------*/*------------*/*------------*/*------------
MEMBERID level name kind status PARENTID
-------*/*------------*/*------------*/*------------*/*----------*/*------------
EMD123F | 2 | OrgName1 | Org | | rootID
---------------------------------------------------------------------------------
DHAD781 | 3 | UserName1 | Person | active | EMD123F
---------------------------------------------------------------------------------
7AJIZU7 | 3 | UserName2 | Person | active | EMD123F
---------------------------------------------------------------------------------
DME123F | 2 | OrgName2 | Org | | rootID
---------------------------------------------------------------------------------
TT5451AL| 3 | UserName3 | Person | active | DME123F
---------------------------------------------------------------------------------
RRMI7481| 2 | OrgName3 | Org | | rootID
---------------------------------------------------------------------------------
PPUNSAD9| 2 | OrgName4 | Org | | rootID
---------------------------------------------------------------------------------
GJASDNZB| 3 | UserName4 | Person | inactive | PPUNSAD9
---------------------------------------------------------------------------------
KJNSCZM7| 2 | OrgName5 | Org | | rootID
---------------------------------------------------------------------------------
1UZGOPAS| 3 | UserName5 | Person | deleted | KJNSCZM7
---------------------------------------------------------------------------------
我曾嘗試:
SELECT t1.NAME, t1.MEMBERID
FROM roles t1
inner join roles t2 on t2.PARENTID = t1.MEMBERID
WHERE t1.kind= 'Person'
我從此查詢得到什麼: 0結果發現
我認爲你換你的領域層次。你的查詢選擇所有用戶,然後加入所有組織,所以't1'是用戶,'t2'是組織(如果你有它的正常化)。因此,'t1.PARENTID'應該等於't2.MEMBERID',而不是相反。 –