2
我有三個實體在我的Symfony2項目連接查詢:學說魂在三個表
- 用戶
- 集團
- 組織
第四實體表示上述三個關係:
- UserOrganisationGroup {userI d,organisationId,groupId}
現在,我需要fetch連接查詢,以某種方式將加載用戶及其組和組織。我雖然是這樣的:
SELECT u, g, o, uog
FROM Yocto\Bundle\UserBundle\Entity\User u
JOIN u.userOrganisationGroup uog
JOIN uog.organisation o
JOIN uog.group g
WHERE uog.user = 1
但我得到的是用戶實體,組織和組似乎是NULL。我究竟做錯了什麼?我知道一個事實,即數據庫具有記錄如下:
User
id | 1
Organisation
id | 1
Group
id | 1
UserOrganisationGroup
userId | 1
groupId | 1
organisationId | 1
array(1) {
[0]=>
object(stdClass)#490 (15) {
["__CLASS__"]=>
string(35) "UserBundle\Entity\User"
["id"]=>
int(1)
["userOrganisationGroup"]=>
array(1) {
[0]=>
object(stdClass)#502 (4) {
["__CLASS__"]=>
string(52) "UserBundle\Entity\UserOrganisationGroup"
["user"]=>
object(stdClass)#507 (15) {
["__CLASS__"]=>
string(35) "UserBundle\Entity\User"
["id"]=>
int(1)
["userOrganisationGroup"]=>
array(1) {
[0]=>
object(stdClass)#525 (4) {
["__CLASS__"]=>
string(52) "UserBundle\Entity\UserOrganisationGroup"
["user"]=>
string(35) "UserBundle\Entity\User"
["group"]=>
NULL
["organisation"]=>
NULL
}
}
}
["group"]=>
NULL
["organisation"]=>
NULL
}
}
}
}
不是。用戶沒有名爲組織的關聯。 @Djuro Mandinic – user2091545
下面的SQL查詢代表我想達到的目標:SELECT u.username, acl_organisations.name, acl_groups.name AS組名 FROM acl_usersü JOIN acl_userOrganisationGroups ON u.id = acl_userOrganisationGroups.user_id JOIN acl_organisations ON acl_userOrganisationGroups.organisation_id = acl_organisations.id JOIN acl_groups ON acl_userOrganisationGroups.group_id = acl_groups.id WHERE u.id = 1 – user2091545