Как считать сгруппированные результаты из объединенной таблицы? - PullRequest
0 голосов
/ 28 августа 2011

Извините за заголовок, я очень плохо разбираюсь в SQL.

У меня есть две таблицы:

Пользователь

id | name

Голосовать

id | user_id | choice

Поле choice представляет собой enum, которое может принимать три значения (a, b, c).

Что я пытаюсь сделать:

  • Выбрать всех пользователей
  • Получить наиболее часто используемых choice для каждого User.
  • Добавить это choice к результату пользователя

Я пробовал это, но это не работает:

Doctrine_Query::create()
  ->select('u.id, u.name')
  ->addSelect('v.id GROUP BY v.choice')
  ->from('User u')
  ->leftJoin('u.Votes v ON v.user_id = u.id')
  ->execute();

Я думаю, что-то связано с COUNT(), GROUP BY и leftJoin, но я не могу найти ни способа сделать это, ни точно сформулировать мою проблему.

Надеюсь, вы можете помочь!

...