CAKEPHP Группировка по проблеме в paginate ..
Это моя структура таблицы
Friends Table
`id` int(11) NOT NULL AUTO_INCREMENT,
`user1_id` int(11) NOT NULL DEFAULT '0',--> UserFrom
`user2_id` int(11) NOT NULL DEFAULT '0',---> UserTo
Мне нужно получить все уникальные записи одного пользователя и его user1_id = 100
В user2_id много повторяющихся значений.Мне нужно получить уникальные значения. Когда я пытаюсь использовать этот код, он возвращает только первые 12 значений (в соответствии с лимитом).Если я прокомментировал группу построчно, то отображаются все записи (включая повторяющиеся значения)
$this->paginate = array(
'conditions' => $conditions,
'contain'=>array(
'UserFrom'=>array(
'fields'=>array(
'UserFrom.id',
'UserFrom.first_name',
'UserFrom.last_name',
),
),
'UserTo'=>array(
'fields'=>array(
'UserTo.id',
'UserTo.first_name',
'UserTo.last_name',
)
)
),'limit' => 12,
'order' => array('Friend.id' => 'desc'),
'recursive'=>0,
'fields'=>array('DISTINCT Friend.user2_id','Friend.*'),
'group'=>array('UserTo.id'),
);
Это мой sql-запрос на этой странице
SELECT COUNT (*) AS count
FROMfriends
AS Friend
LEFT JOIN users
AS UserTo
ON (Friend
. user2_id
= UserTo
. id
) LEFT JOIN users
AS UserFrom
ON (Friend
. user1_id
= UserFrom
. id
) ГДЕ UserFrom
. nick_name
= 'shyam' И Friend
. status
= 'друг' ГРУППА ПО * UserTo
. id
ВЫБЕРИТЕ DISTINCT Friend
. user2_id
, Friend
. *, UserTo
. id
, UserTo
. first_name
, UserTo
. last_name
, UserTo
. nick_name
, UserTo
. name
, UserTo
. icon_medium
, UserTo
. icon_big
, UserFrom
. id
, UserFrom
. first_name
, UserFrom
. last_name
, UserFrom
.nick_name
, UserFrom
. name
ОТ friends
КАК Friend
ВЛЕВО СОЕДИНЯЕТСЯ users
КАК UserTo
ВКЛ (Friend
. user2_id
= UserTo
. id
) ЛЕВОЕ СОЕДИНЕНИЕ* AS UserFrom
ON (Friend
. user1_id
= UserFrom
. id
) WHERE UserFrom
. nick_name
= 'shyam' И Friend
. status
= 'friend' GROUP BY UserTo
. id
ORDER BY Friend
. id
desc LIMIT 12
1.Первый счетчик запросов, возвращающий счетчик правильно 2.Второй запрос, если я поставил лимит не работает правильно.то есть в моей таблице 144 записи, которые мне нужно отображать по 12 на страницу ... только первая страница появится, если я использую group by и ограничим