我有一点疯狂的结构,我的数据库中,用户和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',而不是相反。 –