Я пытаюсь получить определенное количество продуктов, которые были проданы не менее 6 раз, но mysql дает мне неизвестный столбец, но он упорядочивает по тому же значению, если значение извлекает из WHERE.Неизвестный столбец MYSQL
это мой запрос.
SELECT
ps.product_id,
(SELECT IFNULL(SUM(s.product_quantity),0) FROM product_stock s WHERE ps.product_id = s.product_id AND s.product_quantity > 0) AS stock,
SUM(ps.product_quantity) AS vendidos
FROM product_sold ps
WHERE
ps.product_sold_approved_time >= 1419786999
AND
vendidos >= 6
GROUP BY ps.product_id
ORDER BY vendidos DESC
Этот подход лучше, чем выполнение подзапроса в предложении where? Как это SELECT, ps.product_id, (SELECT IFNULL (SUM (s.product_quantity), 0) ОТ product_stock сек WHERE ps.product_id = s.product_id И s.product_quantity> 0) как шток, SUM (пс. product_quantity) КАК vendidos ОТ product_sold пс ГДЕ (SELECT SUM (p.product_quantity) FROM product_sold р ГДЕ p.product_sold_approved_time> = 1419786999 И p.product_id = ps.product_id)> = 6 И ps.product_sold_approved_time> = 1419786999 GROUP BY ps.product_id ORDER BY vendidos DESC – bmacuer
Это зависит от большого набора данных, чтобы избежать подзапроса и иметь надлежащие индексы в столбцах, которые будут использоваться должным образом. Но, поскольку вы спросили его довольно субъективно и полностью зависели от объема данных и используя план объяснения, более подробно об эффективности можно было бы проанализировать. –