У меня есть таблица со следующим (я отсортировал ее по дате):
ID prodId date
16 532 2015-08-17
19 535 2014-08-18
18 534 2011-08-17
27 48 2010-08-26
26 1541 2010-08-25
25 1541 2010-08-21
24 1540 2010-08-20
21 48 2010-08-19
20 48 2010-08-18
17 533 2010-08-17
14 532 2010-08-17
22 1540 1970-01-01
Я хочу выбрать самую последнюю информацию о дате, о которой идет речь в прошлом. Моя проблема в том, что я получаю несколько prodId с одинаковым значением (в этом примере 48 и 1541).
Мой запрос в настоящее время:
SELECT * FROM `prods` WHERE (date <= '2010-08-26') order by date DESC
Как мне изменить свой запрос на удаление нежелательных строк?
SELECT * FROM prods p1
WHERE (date <= '2010-08-26')
AND Date in (Select Max(Date) from prods p2 where p1.prodId = pr.ProdId
and date <= '2010-08-26')
order by activeUntil DESC
Вы ищете инструкцию LIMIT?
SELECT * FROM `prods` WHERE (date <= '2010-08-26') order by activeUntil DESC LIMIT 1
добавить limit 1
для запроса
activeUntil
?