Я программирую приложение C # для Windows Forms в Visual Studio и пытаюсь получить данные о минимальных ценах продуктов в супермаркетах 2 и 3 в списках покупок.
Первый шаг, который мне нужно сделатьэто сделать правильный SELECT-запрос, который возвращает эти данные из моей локальной базы данных MySQL.
В моей таблице цен есть следующие столбцы:
- цена
- штрих-код
- supermarket_id
У меня также есть таблица супермаркетов, в которую входят 3 супермаркета:
- supermarket_id = 1 ИМЯ = супермаркет1
- supermarket_id = 2 ИМЯ = супермаркет2
- supermarket_id = 3 ИМЯ = супермаркет3
Продукт имеет цену для каждого супермаркета в таблице супермаркетов
I 'используя следующий запрос, чтобы позволить базе данных вернуть нужные мне данные:
SELECT pro.name, MIN(p.price) AS 'Lowest Price', p.supermarket_id
FROM (
SELECT i.product_barcode
FROM shopping_list_items i
WHERE i.shopping_list_id = 95
) s
JOIN prices p ON s.product_barcode = p.barcode
JOIN products pro ON s.product_barcode = pro.barcode
GROUP BY s.product_barcode;
Приведенный выше запрос возвращает название продукта, самую низкую цену продукта и supermarket_id.Но supermarket_id всегда равен 1, хотя цена продукта не в супермаркете1, а в супермаркете3.
Так что мой вопрос сейчас заключается в том, каким должен быть мой запрос, чтобы получить supermarket_id вместе сминимальная цена продуктов в конкретном продуктовом списке