У меня есть две таблицы:
- Метки -> идентификатор, имя, описание, пользователь, статус
- Label_connection.-> id, Label_id, category
Итак, существует несколько категорий, скажем, 1 => new, 2 => old.
Мне нужно количество дочерней таблицы в соответствии скатегория.
Это то, что у меня сейчас есть,
SELECT `L`.*, COUNT(DISTINCT LC1.id) as count1, COUNT(DISTINCT LC2.id) as count2
FROM (`Labels` L)
LEFT JOIN `Label_connection` LC1 ON `LC1`.`Label_id` = `L`.`id` AND LC1.categories = "1"
LEFT JOIN `Label_connection` LC2 ON `LC2`.`Label_id` = `L`.`id` AND LC2.categories = "2"
WHERE `L`.`status` = '0' AND `L`.`user` = 1
GROUP BY `L`.`id`
ORDER BY `L`.`id` DESC
LIMIT 20
Это действительно дает мне счет правильно, но я обеспокоен множественными объединениями, так как количество категорий будет идтиup.
Если кто-нибудь может улучшить это, я был бы благодарен,
Заранее спасибо.