我有三個簡單的表:基於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