Оптимизирую код для интернет магазина.
У каждого товара есть обязательные параметры
- категория
- производитель
Соответственно, есть 2 таблицы со следующими столбцами
Таблица А-----------------------------
product_id category_id
-----------------------------
Таблица B-----------------------------
product_id manufacturer_id
-----------------------------
При выполнении следующего запроса:
SELECT a.category_id AS id, COUNT(*) AS p_count
FROM a
JOIN b ON a.product_id=b.product_id
WHERE b.manufacturer_id = 'Мелкософт'
GROUP BY id
Получаю таблицу с выборкой типа:
-----------------------------
id p_count
-----------------------------
Памперсы 15
Лопаты 11
Грабли 25
Тапочки 8
-----------------------------
В списке не все категории а только те в которых есть товары от Мелкософт, и количестов товаров от Мелкософт в каждой указанной категории. Т.к. COUNT(*) показывает только результат отличный от NULL список категорий получется неполный.
ЗАДАЧА
Получить таблицу с ПОЛНЫМ списком категорий. Для тех категорий, где нет товаров от Мелкософт в поле
count записывать
0
Примерно так
-----------------------------
id p_count
-----------------------------
Памперсы 15
Гвозди 0
Шурупы 0
Лопаты 11
Грабли 25
Тапочки 8
Гайки 0
Топоры 0
-----------------------------
Задача легко решается через 2 запроса и PHP скрипт. Но хотелось бы красиво - одним запросом. Заодно лучше освоить SQL.
Запросов к БД в коде сайта немало, кода тоже порядочно и хотелось бы сокращтить и то и другое, попутно повышая свой проф уровень.
Помогите, пожалуйста! =)