Есть ли способ ограничения результата подзапроса?То, чего я пытаюсь достичь, можно объяснить следующим запросом:
SELECT *
FROM product p
JOIN (
SELECT price
FROM supplierPrices sp
ORDER BY price ASC
LIMIT 1
) ON (p.product_id = sp.product_id)
Идея состоит в том, чтобы получить только самую низкую цену для конкретного продукта из таблицы, в которой были все данные о ценах.в этом.LIMIT 1
ограничивает весь набор результатов, тогда как исключение приведет к тому, что для каждой цены будет возвращена строка с дублированными данными о продукте.Я пробовал GROUP BY price
, но безрезультатно.
После того, как лимит сработает, мне нужно также применить IFNULL, чтобы при отсутствии цены для любого поставщика он мог вернуть предоставленную строку, например, «n / a», а не NULL.Я предполагаю, что это просто означало бы изменение SELECT, как показано ниже, и изменение JOIN
на LEFT JOIN
?
SELECT *, IFNULL(price,'n/a')