【发布时间】:2011-10-11 14:03:37
【问题描述】:
CAKEPHP 在分页中按问题分组..
这是我的表结构
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 FROM friends AS Friend LEFT JOIN users AS UserTo ON (Friend.user2_id = UserTo.@987654331IN@) 987654332@ AS UserFrom ON (Friend.user1_id = UserFrom.id) 其中UserFrom.nick_name = 'shyam' 和 Friend.@987654 朋友UserTo.id
选择不同的Friend.user2_id,Friend.*,UserTo.id,UserTo.first_name,UserTo.last_name@3.987654352@@9876545453 ,UserTo.name,UserTo.icon_medium,UserTo.icon_big,UserFrom.id,UserFrom.@987654365.@,@987654365.@,@987654365.UserFrom 987654368 @,UserFrom 987654370 friends Friend leg join join users AS UserTo On(user2_id 987654377 UserTo 987654377 @)左加入users AS UserFrom ON (Friend.user1_id = UserFrom.id) 其中UserFrom.nick_name = 'shyam' AND Friend =.@9867 GROUP BY UserTo.id ORDER BY Friend.id desc LIMIT 12
1.First count查询正确返回count 2.Second查询如果我限制它不能正常工作。即我的表中有 144 条记录,我需要每页显示 12 条记录。如果我使用分组依据和限制,则只有第一页出现
【问题讨论】:
-
您应该将 SQL 查询转储添加到问题中(
echo $this->element('sql_dump')在您看来) -
是添加了 sql 转储。请帮我找到解决办法
-
“我需要每页显示 12 个。如果我使用 group by 和 limit,只有第一页出现”:我不明白你有什么问题(??)
-
当我使用 group by 并限制它只显示前 12 条记录.. 所以分页不会到来。我需要一个解决方案来获得具有分页选项的唯一记录
标签: cakephp cakephp-1.3