Я хочу получить самую последнюю строку из нескольких записей в таблицу, используя объединение в MySql
Я уже ссылаюсь на некоторые сообщения в переполнении стека и других блогах и пытаюсь исправить свое дело, но я думаю, что есть другая проблемав моем случае.
У меня есть 2 таблицы: 1-й - это купон, а 2-й - это coupon_data
В таблице-купоне указан полный код купона, а в coupon_data указаны данные о купоне с датой его погашения идругая информация В этом случае купон будет сканироваться несколько раз, поэтому его будет иметь несколько дат сканирования
Как это
купон
+----------+--------------+
| coupon_id | coupon_code |
+----------+--------------+
| 1 | coupon1 |
| 2 | coupon2 |
| 3 | coupon3 |
+----------+--------------+
coupon_data
+----+------------+-------------+
| id | scan_date | coupon_code |
+----+------------+-------------+
| 1 | 2018-04-18 | coupon1 |
| 2 | 2018-04-20 | coupon2 |
| 3 | 2018-04-22 | coupon2 |
| 4 | 2018-04-25 | coupon1 |
| 5 | 2018-04-27 | coupon1 |
| 6 | 2018-04-28 | coupon3 |
+----+------------+-------------+
Теперь мне нужен самый последний купон сцены с его scan_date
Я пытался получить данные по этому запросу
SELECT *
FROM coupon c
left JOIN (
SELECT MAX(id) max_id, scan_date,coupon_code
FROM coupon_data
GROUP BY coupon_code
) c_max ON (c_max.coupon_code = c.coupon_code)
left JOIN coupon_data cd ON (cd.coupon_code = c_max.coupon_code)
Но не повезло.Моя цель - получить данные, подобные этим.
+-------------+------------+
| coupon_code | scan_date |
+-------------+------------+
| coupon1 | 2018-04-27 |
| coupon2 | 2018-04-22 |
| coupon3 | 2018-04-28 |
+-------------+------------+
Любой ответ приветствуется.