|
发表于 2015-7-13 15:31:57
|
显示全部楼层
本帖最后由 aneasystone 于 2015-7-13 15:40 编辑
首先,你没有必要使用内联视图子查询,另外WHERE条件中的 ut.username LIKE '%%' 似乎也没有意义。所以你的SQL可以简化成下面这样:
SQL复制代码
SELECT
u.*,
IFNULL(am.`role`, 0) `role`,
am.id aid
FROM `user` u
LEFT JOIN admin_member am
ON am.user_id = u.id
WHERE am.`role` = 1
ORDER BY am.`role` DESC, u.id ASC
LIMIT 0,5
复制代码
这样SQL就是一个简单的JOIN语句,可以采用类似于下面的AR代码(手工打的,没测试):
PHP复制代码
$this->db->select('*');
$this->db->from('user');
$this->db->join('admin_member', 'admin_member.user_id = user.id');
$this->db->where('role', 1);
$this->db->order_by('role desc, id asc');
$this->db->limit(5);
$query = $this->db->get(); 复制代码
|
|