こんなテーブルがある。
| 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 | 社員番号 | 名前 |
| 5 | 1 | 1111 | Aさん |
と表示される。
これで、社員番号1111の新しいIDと古いIDが両方取得できる
0 件のコメント:
コメントを投稿