Вы должны заказать по order_date
с id
в качестве вторичного ключа сортировки:
select *
from orders
where customer_id = 20
and status = 'pending'
order by order_date desc, id desc
limit 1
Вам нужен самый последний ордер, поэтому вы должны сортировать, чтобы выразить это намерение. Вам также нужно иметь дело с дублирующимися значениями order_date
, чтобы вы могли добавить id
в качестве дополнительного ключа сортировки, чтобы, надеюсь, получить самый последний из самых последних order_date
. Это предполагает, что id
- это столбец serial
или bigserial
.
Вы, вероятно, можете безопасно использовать order by id desc
, если order_date
не разрешено изменять после создания записи. Однако, если вы order by order_date desc, id desc
, то сразу же станет ясно, каково ваше намерение, люди, поддерживающие ваш код (возможно, вы), могут оценить это, когда вы точно скажете, что вы имеете в виду.