2013-05-28 5 views
0

У меня есть таблица пользователей, а также связанная таблица под названием UserWorkplaces, где один пользователь может иметь любое количество связанных строк в таблице UserWorkplaces.Doctrine 1.2: как получить количество связанных строк таблицы в запросе?

Я пытаюсь создать запрос, чтобы найти всех пользователей только с одной связанной строкой в ​​UserWorkplaces. Какой запрос я должен использовать, чтобы получить это?

Вот что я пытался до сих пор, но это дало мне кол рабочих мест у всех и только один пользователь:

$query = Doctrine_Query::create() 
    ->from('Users', 'u') 
    ->innerJoin('u.userWorkplaces uw') 
    ->having('COUNT(uw.id) = 1'); 

ответ

1

Я считаю, что ваша проблема не доктрина, но SQL вы хотите достичь ,

Сделайте рассказ коротким, следующий код должен сработать.

$query = Doctrine_Query::create() 
    ->from('Users u') 
    ->innerJoin('u.userWorkplaces uw') 
    ->having('COUNT(uw.id) = ?', 1) 
    ->groupBy('u.id'); 

COUNT() является агрегатной функцией, и поэтому вы должны указать GROUP BY параметра для основной таблицы, которую вы хотите перечислить в.

Смежные вопросы