我有存儲在用戶表中的用戶對象。查詢從多對多關係中獲取對象
我有存儲在權限表中的權限對象。
我有一個MTM_UsersPermissions表,它將多個用戶對象映射到多個權限對象。如果User.id = 1
和Permission.id = 10
,並且該用戶擁有此權限,則在MTM_UsersPermissions中有ID_A = 1
和ID_B = 10
的記錄。
我想獲得與給定用戶相關的所有權限,知道用戶ID。
我有一個有點功能查詢: SELECT Permissions.id, Permissions.Name, Permissions.Title, Permissions.Description, Permissions.OwnerURI FROM Permissions JOIN OTM_UsersPermissions ON OTM_UsersPermissions.ID_B = Permissions.id JOIN Users ON OTM_UsersPermissions.ID_A = :user_id;
(其中user_id
是用戶的ID)
但這似乎僅檢索與每個用戶相關聯的權限。但是,每個權限都與Users表中存在的用戶數重複。例如,如果用戶分配了一個權限,但總共有五個用戶,則將檢索到正確的權限,但每個權限將有五個。
我對JOIN語句沒有太多經驗。我試圖用這個答案來獲得一個可行的解決方案,但仍然缺乏一些東西。 Clean way to get foreign key objects in PHP MySQL query
使用MySQL 5.5。
我錯過了什麼?
ilmiont
謝謝你迅速的反應,工作完全如預期:) – Ilmiont