好的家伙我会尽力解释这个。我有一份学校名单和这些学校的成员名单。我正在构建的应用程序让用户获得站点上的操作点。现在我有一个排行榜的页面显示了学校的总分,但是我还希望展示该学校的顶级个人得分...
现在,使用CodeIgniter ActiveRecord,我正在这样做......
$this->load->database();
$this->db->select('school_name, points')->order_by('points', 'desc');
$query = $this->db->get( 'schools_final' );
return $query;
但是如果可能的话,我也希望在此查询中显示该特定学校的用户表中的最佳得分者。我希望避免在foreach语句中进行子查询。
我的桌子看起来像这样......
...学校
id | school_name | points
用户...
id | first_name | last_name | school_id | points
答案 0 :(得分:0)
我不知道如何在CI中编写,但您必须使用子查询。在mysql中用于此目的的简单查询将是{select * from user,school其中user.school_id = school.id和user.points =(从用户中选择max(user.points),其中user.school_id = school.id)group by school_id}我相信你会在CI中找到一些方法。
答案 1 :(得分:0)
如果我没有出错你提问,那么你想要的结果会在CI希望中给你这个查询
$query=$this->db->query("SELECT
school_name.school_name AS School_Name,
school_name.points AS Total_point,
users.first_name AS Top_Scorer,
users.points AS Total_Point
FROM school_name
LEFT JOIN users
ON users.school_id = school_name.id
GROUP BY (users.school_id)
ORDER BY school_name.points,users.points DESC");
return $query->result();