1

これは私の SQL テーブルです。ここで私はすべてを取得したい

       marks_table
ID  STUD_ID MARKS   VERSION    VERIFICATION_ID
1      50     90       1             2
2      22     50       1             2
3      33     20       1             2
4      10     30       1             2
5      55     50       1             2
6      55     40       2             2
7      20     60       1             2
8      30     90       1             2
9      10     88       1             3
10     10     45       2             3

私が欲しいのは、すべての結果をverification_idで取得し、バージョンがより大きな値であることです。たとえば、ID 5,6 と 9,10 は同じ std_id でマークが異なり、バージョンも異なります。そのverification_idから最大バージョンの結果と他のすべての結果を取得したい.

CodeIgniter では、次のコマンドを使用しました。

$this->db->select('*');
$this->db->from('marks_table');
$this->db->where('version IN (SELECT MAX(version) FROM marks_table)',NULL,FALSE);
$this->db->where('verification_id','2');
$this->db->get();

私が手に入れたのは最終的な最大バージョンだけです

   marks_table
    ID  STUD_ID MARKS   VERSION    VERIFICATION_ID
    6      55     40       2             2

私が本当に欲しいもの、このように

       marks_table
ID  STUD_ID MARKS   VERSION    VERIFICATION_ID
1      50     90       1             2
2      22     50       1             2
3      33     20       1             2
4      10     30       1             2
6      55     40       2             2
7      20     60       1             2
8      30     90       1             2
4

3 に答える 3

4

最初に Max バージョンを見つけてから、そのデータを取得します。

   select * from marks_table a
    where version = (select max(version) from 
                        marks_table where stud_id = a.stud_id);
于 2012-07-26T17:33:13.040 に答える
0

srini.venigalla の回答を修正しました。彼のおかげです。

  select * from marks_table a
    where version = (select max(version) from 
                        marks_table where stud_id = a.stud_id) AND VERIFICATION_ID = 2;
于 2012-07-27T03:27:56.297 に答える
0

テーブルから複数の行を取得しようとする

$this->db->select('*');
$this->db->from('marks_table');
$this->db->where('version IN (SELECT MAX(version) FROM marks_table)',NULL,FALSE);
$this->db->where('verification_id','2');
$this->db->get()->result_array();
于 2012-07-27T08:03:21.887 に答える