我有三张桌子:
- 游戏
columns: id | name
(例如 1 | Halo) - 拥有
columns: id | type_id | type_name
(例如 1 | 1 | 在愿望清单上) - 用户
columns: id | name
(例如 1 | Tomek)
现在我拥有的是ManyToMany
这些表之间的连接:
用户(表user_own
)
/**
* @ORM\ManyToMany(targetEntity="Own")
* @ORM\JoinTable(
* joinColumns={@ORM\JoinColumn(name="user_id", referencedColumnName="id")},
* inverseJoinColumns={@ORM\JoinColumn(name="type_id", referencedColumnName="id")}
* )
*/
自己的(表own_game
)
/**
* @ORM\ManyToMany(targetEntity="Game")
* @ORM\JoinTable(
* joinColumns={@ORM\JoinColumn(name="user_id", referencedColumnName="id")},
* inverseJoinColumns={@ORM\JoinColumn(name="game_id", referencedColumnName="id")}
* )
*/
我的查询:
public function getOwned() {
return $this->getEntityManager()
->createQuery('
SELECT u, o, g FROM AcmeGoBundle:User u
JOIN u.owners o
JOIN u.games g
')
->getResult();
}
我可以检索特定用户拥有的游戏,但我无法连接所有权类型。我怎样才能做到这一点?