Мы можем попробовать использовать GROUP BY
с LIMIT
:
SELECT
b.name,
b.price
FROM auction a
INNER JOIN bid b
ON a.auction_id = b.auction_id
WHERE
a.name = 'some name goes here'
GROUP BY
b.name,
b.price
HAVING COUNT(*) = 1
ORDER BY
b.price
LIMIT 1;
Вышеупомянутый запрос агрегирует по ставке, а затем сохраняет только те ставки, которые появляются один раз (HAVING COUNT(*) = 1
).Затем он упорядочивает по возрастанию цены предложения и сохраняет только одну строку, причем эта строка является самой низкой ценой.