0

私はこのような構造を格納するテーブルを持っています

id name group_id
1 ABC   1
2 DEF   1
3 GHi   1
4 jkl   2
5 mno   2
6 pqr   2
7 stu   3
8 vwx   3
9 yz0   3

上記の例では、3 が常に同じであるとは限らないため、最後の group_id でレコードを取得したいので、最初に別のクエリで最後のグループ ID を取得する必要があります。

Selct * FROM records ORDER BY group_ID DESC LIMIT 1;
// so here it gets last group-id which is 3

そのため、最後のIDを持つレコードを取得するには、別のクエリを実行する必要があります

// $id = 3 // from above records
Select * From records where group_id = $id

単一のmysqlクエリでそれを行うより良い方法はありますか? codeigniter アクティブ レコードを使用しています。ありがとう

4

2 に答える 2

4

これを試して:

SELECT * 
FROM records 
WHERE group_ID  = (SELECT MAX(group_ID ) 
                   FROM records);

SQL フィドルのデモ

これにより、次のことが得られます。

| ID | NAME | GROUP_ID |
------------------------
|  7 |  stu |        3 |
|  8 |  vwx |        3 |
|  9 |  yz0 |        3 |
于 2013-03-19T15:03:30.880 に答える
2
 SELECT x.*
   FROM my_table x
   JOIN 
      ( SELECT MAX(group_id) max_group_id FROM my_table ) y
     ON y.max_group_id = x.group_id;
于 2013-03-19T15:06:05.883 に答える