これらのエントリを考慮する:
INSERT INTO `schedule_hours` (`id`, `weekday`, `start_hour`) VALUES
(1, 1, '09:00:00'),
(2, 2, '09:00:00'),
(3, 3, '09:00:00'),
(4, 4, '09:00:00'),
(5, 5, '09:00:00'),
(6, 6, NULL),
(7, 7, NULL),
(8, 1, '12:00:00');
次のクエリを実行しています。
SELECT MAX(id), weekday, start_hour
FROM schedule_hours
GROUP BY weekday
ORDER BY weekday
目的は、1 週間 (平日の 1 月曜日、2 火曜日など) を取得することですが、最新のエントリを返すことです。
したがって、私のテーブルには、月曜日に 2 つのエントリがあり、残りの日には 1 つのエントリがあり、最新のもののみを返したい (id はインクリメント フィールドです)。正しい結果は次のようになります。
8 1 12:00:00
2 2 09:00:00
3 3 09:00:00
4 4 09:00:00
5 5 09:00:00
6 6 NULL
7 7 NULL
私が現在得ているもの:
8 1 09:00:00 < wrong
2 2 09:00:00
3 3 09:00:00
4 4 09:00:00
5 5 09:00:00
6 6 NULL
7 7 NULL
id 列と weekday 列は正しいのですが、最初の行の start_hour 列の結果が正しくありません!