我有三个简单的表:基于ManyToMany的组,权限和group_permissions。 我的问题是在执行一个查询时,给定组ID(pk)将使用所有权限(包括与给定组关联的那些结果集以及与该组关联的结果集)来检索结果集。ManyToMany查询问题
我已经试过类似:
SELECT *
FROM permission
LEFT JOIN group_permissions ON group_permissions.permission_id = permission.id
LEFT JOIN group ON group_permissions.group_id = group.id
WHERE group.id = 123
,但它只是不工作...
任何建议吗?
谢谢大家的回答,我只用了不到30分钟就解决了我的问题!这不是什么吗?
SELECT *
FROM auth_permission
LEFT JOIN auth_group_permissions ON auth_group_permissions.permission_id = auth_permission.id AND auth_group_permissions.group_id = 123
LEFT JOIN auth_group ON auth_group.id = auth_group_permissions.group_id
这是完整的查询?你提到的给定组ID的测试在哪里? – 2011-04-19 18:42:03
我忘了:(刚刚编辑it.tk – Abel 2011-04-19 18:56:33
这就是我所怀疑的,这就是为什么我问这个问题的原因。正如我在下面对Steve Mayne的评论中所提到的那样,您无法在where子句中检查该值,因为它会取消左连接。我已经发布了一个解决这个问题的答案 – 2011-04-19 18:59:28