1

わかりました、これを説明するために最善を尽くします。私は学校のリストとそれらの学校のメンバーのリストを持っています。私が構築しているアプリケーションでは、ユーザーがサイトでのアクションに対してポイントを獲得しています。これで、これまでの学校を合計ポイント順に表示するリーダー ボード ページができましたが、その学校の個人成績上位者も表示したいと思います...

だから今、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
4

2 に答える 2

0

間違っていない場合は、質問すると、希望する結果により、CI Hope でこのクエリが得られます。

$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();
于 2012-06-26T09:38:53.493 に答える
0

CIでの書き方がわかりませんが、サブクエリを使用する必要があります。この目的のための mysql での単純なクエリは次のようになります。 CI で何らかの方法を見つけることができると確信しています。

于 2012-06-26T04:56:05.080 に答える