2015-07-13 18 views
0

我試圖做一個mysql搜索,它返回用戶信息與分組類別(group_id's)。我只需要一些幫助讓我的查詢正確:mysql選擇用戶信息和組類別

SELECT a.*, a.name AS editor, a.name AS created_by, b.*, c.* FROM `cm0x8_users` AS a LEFT JOIN cm0x8_users_xref AS b ON b.userid = a.id LEFT JOIN cm0x8_user_usergroup_map AS c ON c.user_id = a.id WHERE (a.block IN (0, 1)) AND c.group_id NOT IN(6,7,8) ORDER BY a.name asc 

返回同一用戶3次(他們在3個不同的組)。

例子:

id   name   group_id 
1   Fred   1 
1   Fred   2 
1   Fred   3 
2   John   1 
3   Jane   1 
3   Jane   3 

但我後:

id   name   group_id 
1   Fred   1, 2, 3 
2   John   1 
3   Jane   1, 3 

(或類似)

任何幫助將是巨大的!

+2

使用'CONCAT'&'集團BY'。 –

+1

GROUP_CONCAT可能會有所幫助。 – Kamal

+0

看到您已經用PHP標記了這一點,只需在那裏做一些簡單的數組處理即可。 – Strawberry

回答

1

這似乎是給了我預期的結果..

SELECT a.*,a.name AS editor,a.name AS created_by,b.*,group_concat(c.group_id) as gid,c.* FROM `#__users` AS a LEFT JOIN #__users_xref AS b ON b.userid = a.id LEFT JOIN #__user_usergroup_map AS c ON c.user_id = a.id WHERE (a.block IN (0, 1)) AND c.group_id NOT IN(6,7,8) GROUP BY a.id ORDER BY a.name asc