У меня есть таблица предметов, и у меня есть отдельная таблица, содержащая отдельные покупки каждого предмета.Не каждый предмет был куплен.Я выбираю количество покупок и соединяю его с таблицей товаров с заявлением, подобным следующему:
SELECT items.name, purchases_count
FROM `items`
LEFT JOIN (SELECT sales.item_name, SUM(unit_sales) AS purchases_count
FROM sales GROUP BY item_name) sales ON sales.item_name = items.uid
Это приводит к данным, похожим на:
+------+-----------------+
| name | purchases_count |
|------+-----------------+
| Shoe | 12 |
| Belt | NULL |
+------+-----------------+
Моя проблема возникает, когдаЯ хочу отфильтровать этот результат на purchases_count
.Если я использую WHERE purchases_count < 10
или что-то подобное, предметы, не имеющие записи о продажах вообще (т. Е. Предметы со значением NULL
), исключаются из поиска.
Я пытался использовать COALESCE(purchases_count,0) AS purchases_count
, который работает правильноустановите NULL
записи в 0, но они все еще не появляются при использовании WHERE
.Я подозреваю, что COALESCE
происходит после WHERE
.
Я бы хотел иметь возможность фильтровать по этому номеру, используя WHERE
и включать NULL
результаты (как нули), если это возможно.Есть предложения?