【发布时间】:2014-04-25 16:39:07
【问题描述】:
我正在尝试使用以下 4 个表创建 LEFT JOIN。 想法是显示用户 ID 的 parent.name。应该 groupconcat 子名,如果用户不在子用户表中,则 child.name 应该为 NULL
以下是用户 id 1 的预期结果:
id parentname childname
-------------------------------------------------
1 parent1 child1,child3
以下是用户 ID 2 的预期结果: 这个用户不在 childusers 表中,所以它应该返回 null
id parentname childname
-------------------------------------------------
1 parent2 NULL
表格:
父母
id parentname
--------------------------------------------
1 parent1
2 parent2
3 parent3
孩子
id childname parent_id
-----------------------------------------------
1 child1 1
2 child2 2
3 child3 1
父母用户
id parent_id user_id
-------------------------------------------------------
1 1 1
2 2 2
3 3 1
子用户
id child_id user_id
-------------------------------------------------------
1 1 1
这是我的查询:
SELECT parent.name AS parentname,
GROUP_CONCAT(child.name SEPARATOR ',') AS childname
FROM parentusers,parent
LEFT JOIN child
ON parent.id=child.parent_id
WHERE parentusers.parent_id= parent.id
AND parentusers.user_id='1'
GROUP BY parent.id
我已经编写了两个单独的查询,但想将这两个查询组合成上述结果格式的单个结果。
select parent.parentname from parent,parentusers
where parent.id=parentusers.parent_id
and parentusers.user_id=1 ;
select GROUP_CONCAT(child.childname) as childname from child
LEFT JOIN childusers
ON child.id=childusers.child_id
where childusers.user_id=1;
谢谢..
【问题讨论】:
-
我们可以为此获得一个 sqlfiddle 吗?
-
请检查并帮助我
标签: mysql