У меня есть две таблицы, одна содержит список предметов, который называется watch_list
с некоторыми важными атрибутами, а другая - просто список цен, который называется price_history
.Я хотел бы сгруппировать 10 самых низких цен в один столбец с помощью операции group_concat, а затем создать строку с атрибутами элемента от watch_list
вместе с 10 самыми низкими ценами для каждого элемента в watch_list
.Сначала я попробовал соединения, но потом понял, что операции выполняются в неправильном порядке, поэтому я никак не мог получить желаемый результат с помощью операции соединения.Затем я попробовал очевидную вещь и просто запросил price_history
для каждой строки в watch_list
и просто склеил все вместе в хост-среде, которая работала, но казалась очень неэффективной.Теперь у меня есть следующий запрос, который выглядит так, как будто он должен работать, но он не дает мне желаемых результатов.Я хотел бы знать, что не так со следующим утверждением:
select w.asin,w.title,
(select group_concat(lowest_used_price) from price_history as p
where p.asin=w.asin limit 10)
as lowest_used
from watch_list as w
По сути, я хочу, чтобы операция limit
происходила до того, как group_concat
что-то сделает, но я не могу придумать оператора SQL, которыйсделай это.