У меня есть стол заказов. Каждый заказ связан с одним или несколькими элементами корзины.
Основной код:
SELECT * FROM Orders o JOIN OrderItems oi ON o.OrderNumber = oi.OrderNumber
Я могу ограничиться последними 5 пунктами, выполнив это:
ORDER BY oi.CreatedDate DESC LIMIT 5
Однако в некоторых случаях пользователь размещал несколько заказов на одни и те же продукты. например,
OrderNo ItemNo ProductId
1 1 70
1 2 20
2 1 80
2 2 30
3 1 10
4 1 90
5 1 10
6 1 40
7 1 50
8 1 100
9 1 10
10 1 30
11 1 10
12 1 60
Если я получу последние пять предметов, я получу 60, 10, 30, 10, 100. На самом деле я хочу получить последние 5 уникальных идентификаторов продукта - так что это будет 60, 10, 30, 100, 50. Каким будет SQL для этого?
Отредактировано
Если я использую GROUP BY, я получаю 60, 100, 50, 40, 90. Где 30?