我在select中只指定了 to_id
$criteria=new CDbCriteria;
$criteria->select = ‘to_id’;
但是YII的查询语句为
SELECT DISTINCT t
.to_id
AS t0_c2
, t
.id
AS t0_c0
,
把 id(该表主键) 自己给加上了 这样我的DISTINCT就无法返回我期望的结果了 也就是DISTINCT没有意义了
请问这是怎么回事或是有什么其他方法能实现我想要的功能
我在select中只指定了 to_id
$criteria=new CDbCriteria;
$criteria->select = ‘to_id’;
但是YII的查询语句为
SELECT DISTINCT t
.to_id
AS t0_c2
, t
.id
AS t0_c0
,
把 id(该表主键) 自己给加上了 这样我的DISTINCT就无法返回我期望的结果了 也就是DISTINCT没有意义了
请问这是怎么回事或是有什么其他方法能实现我想要的功能
?? 哪位知道怎么回事 指教一下
无语了 一周了 没有人知道怎么回事??
$criteria=new CDbCriteria;
$criteria->select = 'barId';
$models=Menu::model()->findAll($criteria);
生成的sql如下
2010/05/13 18:18:09 [trace] [system.db.CDbCommand] Querying SQL: SHOW COLUMNS FROM `_core_menu`
2010/05/13 18:18:09 [trace] [system.db.CDbCommand] Querying SQL: SHOW CREATE TABLE `_core_menu`
2010/05/13 18:18:09 [trace] [system.db.ar.CActiveRecord] Menu.findAll()
2010/05/13 18:18:09 [trace] [system.db.CDbCommand] Querying SQL: SELECT barId FROM `_core_menu` `t`
不清楚你的环境和我的区别在哪里?
这样的语句,建议你使用dao来查询~
AR记录必须有主键值的,不然彼此无法区分。这也是为什么主键会被自动加上query。
用DAO就用不了YII的分页了啊
那么现在想实现排除相同记录要怎么实现呢
你可以考虑用findAllBySql()。
另外CPagination并不需要AR,所以你也可以用DAO