回答編集履歴

3 修正

A.Ichi

A.Ichi score 3901

2017/06/04 01:48  投稿

havingではありませんが
mysqlの場合groupキー以外の項目(集合関数以外)は、どれを持って来るか保障されていないのでは
またHAVING区の条件は、グループで成立するので `修正`=max(`修正`)は2件になります。  
```sql
select * from table where (`id`,`日付`,`修正`) in (
 select `id`,`日付`,max(`修正`) from table where `id`=1111 group by `日付`);
```
2 追加

A.Ichi

A.Ichi score 3901

2017/06/04 00:22  投稿

havingではありませんが
mysqlの場合groupキー以外の項目(集合関数以外)は、どれを持って来るか保障されていないのでは  
```sql
select * from table where (`id`,`日付`,`修正`) in (
 select `id`,`日付`,max(`修正`) from table where `id`=1111 group by `日付`);
```
1 修正

A.Ichi

A.Ichi score 3901

2017/06/04 00:19  投稿

havingではありませんが  
```sql
select * from table where (`id`,`日付`,`修正`) in (
 select `id`,`日付`,max(`修正`) from table where `id`=1111 group by `日付`);
```

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る