2011年8月7日日曜日

MySql GROUP BYでLast idを取得

忘れん為に・・・

こんなテーブルがある。

ID 社員番号 名前
1 1111 Aさん
2 2222 Bさん
3 3333 Cさん
4 1111 Aさん
5 1111 Aさん
6 4444 Dさん
7 5555 Cさん
8 2222 Bさん

ここで、SELECT * FROM `Table_Name` WHERE `社員番号` = '1111' GROUP BY `社員番号`とすると

ID 社員番号 名前
1 1111 Aさん

こんな形で出てくるが
ここで欲しいのは、GROUP BYとして、重複データをまとめて、尚かつ社員番号1111のIDの大きい物を出したい

それで、調べてみたら合った
SELECT max(id), id, 社員番号, 名前 FROM `Table_Name` WHERE `社員番号` = '1111' GROUP BY `社員番号`

とすると
max(id)ID 社員番号 名前
51 1111 Aさん

と表示される。
これで、社員番号1111の新しいIDと古いIDが両方取得できる

0 件のコメント:

コメントを投稿