зенд левый счетчик соединений не работает

у меня есть проблема с количеством в мульти-соединениях

$query = $this->select()
->setIntegrityCheck(false)
->from(array('u' => 'users'))
->join(array('c' => 'clients'), 'u.id = c.user_id', 'COUNT(c.user_id) as clientsCount')
->join(array('emails' => 'u_emails'), 'u.id = emails.user_id', 'COUNT(emails.user_id) as emailsCount')
->join(array('sms' => 'u_sms'), 'u.id = sms.user_id', 'COUNT(sms.user_id) as smsCount')
->where('u.id=?', (int) USER_ID)->group('u.id');

0

Решение

Я думаю, что это может помочь вам выйти из этой проблемы:

$this->select()
->from(array('u' => 'users'), array(
'clientsCount' => new Zend_Db_Expr("(SELECT COUNT(*) FROM clients WHERE clients.user_id = u.id)"),
'emailsCount' => new Zend_Db_Expr("(SELECT COUNT(*) FROM emails WHERE emails.user_id = u.id)"),
'smsCount' => new Zend_Db_Expr("(SELECT COUNT(*) FROM sms WHERE sms.user_id = u.id)"),
)
->where('u.id=?', (int) USER_ID)
->group('u.id');

Я не могу проверить запрос, поэтому не стесняйтесь спрашивать, есть ли у вас проблемы.

Отредактировал мой ответ, пожалуйста попробуйте еще раз

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector