我有一个名为user
USER(表)
user_id name status_privilege(0=child,1=parent) added_user_id
2 abc 1
13 child_1 0 2
14 child_2 0 2
我想在所有user_id = 2
(所有孩子的登录名)中显示user_id = 14,15
(父母的)数据。我还要在user_id = 14 , 15
的数据中显示user_id = 2
的数据。 (反之亦然)
那为了做什么?
我尝试了这个查询。
SELECT *,child.user_id as child_user_id,parent.user_id as parent_user_id
FROM user as parent
INNER JOIN user as child ON parent.user_id = child.user_added_id
WHERE child.user_id = '14'
所以我得到了 child_user_id = 14& parent_user_id = 2
但我希望当我在下面查询时,它给我空白的结果。 (已更改child.user_id = '2'
)
SELECT *,child.user_id as child_user_id,parent.user_id as parent_user_id
FROM user as parent
INNER JOIN user as child ON parent.user_id = child.user_added_id
WHERE child.user_id = '2'
所以我想要的是当我触发查询单一查询时,如果用户是父母,那么我想要它的孩子user_id ='2'
中的所有数据意味着数据为14& 15位用户。所有孩子中的第二个user_id数据。
注意:其他表格中的所有数据都来自user_id
,这样可能吗?
这是现有项目的要求,所以我不能改变数据库结构,否则我可以遵循父子结构的MySQL层次结构。
答案 0 :(得分:2)
答案是基于我从问题中理解的是: 如果父用户登录,则需要完整的子用户ID数组,如果子用户登录,则只需要一个父用户ID。
所以在php中你可以通过
派生出来C constructor()
P constructor()
C _init() //printed from Child.prototype._init
C _init() //printed from Child.prototype._init
child undefined