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集計関数リファレンス。