我在user_has_client
子實體和client
父實體之間存在多對一的關係。從連接查詢中獲取父實體
這裏是user_has_client
表:
MariaDB [extrapack]> desc user_has_client;
+-----------+------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------+------------------+------+-----+---------+-------+
| user_id | int(10) unsigned | NO | PRI | NULL | |
| client_id | int(10) unsigned | NO | PRI | NULL | |
+-----------+------------------+------+-----+---------+-------+
我想從涉及的user_has_client
子實體的user_id
查詢返回client
父實體的名單。
我第一次這樣嘗試之一:
$query = $this->getEntityManager()->createQueryBuilder()
->select('c')
->from('Application\Entity\UserHasClient', 'uc')
->innerJoin('uc.client', 'c')
->where('uc.user_id = :user_id')
->setMaxResults(10)
;
$query->setParameters(array('user_id' => $user_id));
它給了我下面的錯誤:
[Semantical Error] line 0, col -1 near 'SELECT c
': Error: Cannot select entity through identification variables without choosing at least one root entity alias.
,然後試圖這樣一條:
$query = $this->getEntityManager()->createQuery(
"SELECT c.client_id
FROM Application\Entity\UserHasClient u
INNER JOIN u.client c
WHERE u.user_id = {$user_id}");
它給了我同樣的錯誤:
Semantical Error] line 0, col -1 near 'SELECT c FROM': Error: Cannot select entity through identification variables without choosing at least one root entity alias.
的關係是雙向的?換句話說,客戶是否持有關係的反面? – Wilt
我認爲這不是,但實際上是。 – Stephane