如何执行从不同表返回唯一值的mySQL查询

时间:2015-11-19 15:25:48

标签: mysql sql database django-admin

嗨我有一个大型数据库,包含100多个表。我有3个名为auth_group(id和group_name)的表,auth_permission(id和permission_name)和auth_group_permission(关联表b / w这两个表)由字段id,group_id和permission_id组成。 auth_group表中有许多组,每个auth_group也可能有许多权限。某些组可能具有与其他组相同的权限。我需要创建一个contains Group and permission, if same permissions are coming for different groups include in both the group rows的Excel工作表。我需要创建一个返回A list of groups and their corresponding permissions grouped together的查询。例如:

Managers : can create record
            can delete record
            etc.
 Engineer : create data
             delete data

我已经尝试了以下查询,但没有成功。

select distinct G.name, P.name from auth_group G, auth_permission P, auth_group_permission GP where G.id = GP.group_id AND P.id = GP.permission_id LIKE G.name LIKE 'BIG_RA_%'

任何想法的人?提前谢谢。

1 个答案:

答案 0 :(得分:0)

你可以尝试这样的事情。

SELECT G.name,
   GROUP_CONCAT(P.name)
 FROM  auth_group_permission GP
 INNER JOIN auth_group G ON G.id = GP.group_id
 INNER JOIN auth_permission P ON P.id = GP.permission_id
 WHERE G.name LIKE 'BIG_RA_%'
 GROUP BY G.name

希望这有帮助。