我正在嘗試使用以下4個表創建LEFT JOIN。 這個想法是顯示用戶id的parent.name。如果用戶不在子用戶表中,應該對子用戶名進行groupconcat。child.name應爲NULLMysql LEFT JOIN沒有回到預期的結果
以下是用戶標識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
parentusers
id parent_id user_id
-------------------------------------------------------
1 1 1
2 2 2
3 3 1
childusers
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? –
這裏是小提琴http://sqlfiddle.com/#!2/8ffaa/3 – user1851420
請覈對幫我 – user1851420