我有一個關於Doctrine 2的問題,以及一個關於maytomany關係的左連接,我試圖讓它工作。這可能是我的查詢生成器,但我似乎無法弄清楚。Doctrine 2 leftJoin,with,manytomany relationship,wrong rows of rows returned
我有一個連接表所示:
----------------------------------
| user_id | attraction_id |
----------------------------------
| 4 1 |
| 4 2 |
| 4 3 |
----------------------------------
對於兩種模式,用戶和吸引力,並且用戶是關係的所有者。
當我執行此查詢:
$attractions = $CI->em->createQueryBuilder()
->select('a', 'u')
->from('\ListLovers\Model\Attraction', 'a')
->leftJoin('a.users', 'u', \Doctrine\ORM\Query\Expr\Join::WITH, 'u.id = 4')
->getQuery()->getResult();
我的用戶數爲ID爲1的吸引力是1大!
現在,如果我添加其他行的連接表所示:
----------------------------------
| user_id | attraction_id |
----------------------------------
| 1 1 |
| 4 1 |
| 4 2 |
| 4 3 |
----------------------------------
...,並執行相同的查詢,我的用戶數爲吸引ID爲1是......零。什麼?
我錯過了什麼嗎?
謝謝, 馬克。
您必須使用字段來連接到另一個表(您的使用自定義標識符),並且篩選器必須位於SQL查詢中的「where」部分。 – ZhukV 2014-02-12 05:14:37