Ami
Новичок
Доброго времени суток. Возникла небольшая проблема.
Есть таблица А, в которой хранятся данные о продукте. И таблица Б, в которой хранится информация об изменениях цены. Цель достать из таблицы Б последнюю запись для конкретного продукта т.к. в таблице Б может быть не одна запись для данного товара.
Изначально у меня выводился список продуктов, я получал их id и с помощью оператора IN доставал данные из таблицы Б. Но проблема в том, что достаются все данные, а мне нужно только последние. Хоть этот метод и намного быстрей самого первого моего решения, но он мне не нравится. В таблице пока только 5к записей и нет смысла все 5к тянуть. Нужна только тысяча т.к. всего тысяча товаров.
Второй способ через INNER JOIN. Все работает. Данные я получаю, но вроде как из таблицы Б запрос достает только первое совпадение.
Как это сделать?
Можно ли указать сортировку в запросе INNER JOIN? Потому что сортировка в общем запросе результатов не дает.
Пример:
Таблица А
id | product
1 samsung
2 apple
3 nokia
Таблица Б
id | price | product_id
1 100 1
2 120 1
3 115 1
4 90 2
5 85 2
6 100 3
В результате должно достать:
samsung - 115
apple - 85
nokia - 100
Вместо id я хотел брать поле date, в котором записано время в формате Unix, но создать тут еще одно поле лень
Смысл в том, чтобы достать для самсунда цену в 115 т.к. она последняя для этого товара. Можно не через id, можно не через дату, можно вообще по другому.
Есть таблица А, в которой хранятся данные о продукте. И таблица Б, в которой хранится информация об изменениях цены. Цель достать из таблицы Б последнюю запись для конкретного продукта т.к. в таблице Б может быть не одна запись для данного товара.
Изначально у меня выводился список продуктов, я получал их id и с помощью оператора IN доставал данные из таблицы Б. Но проблема в том, что достаются все данные, а мне нужно только последние. Хоть этот метод и намного быстрей самого первого моего решения, но он мне не нравится. В таблице пока только 5к записей и нет смысла все 5к тянуть. Нужна только тысяча т.к. всего тысяча товаров.
Второй способ через INNER JOIN. Все работает. Данные я получаю, но вроде как из таблицы Б запрос достает только первое совпадение.
Как это сделать?

Пример:
Таблица А
id | product
1 samsung
2 apple
3 nokia
Таблица Б
id | price | product_id
1 100 1
2 120 1
3 115 1
4 90 2
5 85 2
6 100 3
В результате должно достать:
samsung - 115
apple - 85
nokia - 100
Вместо id я хотел брать поле date, в котором записано время в формате Unix, но создать тут еще одно поле лень
