GROUP BYがありません MAX()の句 集計。正解を得た理由12 最初のクエリの試みは、それがたまたまテーブル内で最大のIDであると同時に、偶然にもemp_id = 1に属しているためでした。 。 emp_idのいずれでも同じ結果が得られます 値。 GROUP BY 条項はこれを整理します。
関連するレコードの行全体を取得する例を次に示します。
SELECT * FROM timeclock
WHERE id = (SELECT MAX(id) AS id FROM timeclock WHERE emp_id = 1 GROUP BY emp_id);
これは、HAVINGでも実行できます。 サブクエリを必要としない句:
SELECT action
FROM timeclock
WHERE emp_id = 1
GROUP BY emp_id
HAVING id = MAX(id);
参考までに、<a rel="nofollow noreferrer noopener"href="https://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html">MySQL集計関数リファレンス。