0

在我的categories桌子上,我有:cat_id, cat_name, cat_slug. 在表中items我有:item_title, item_id, item_category

`item_category` = `cat_id`

我正在使用以下 SQL 来获取“所有”类别以及它们有多少项目:

SELECT *, COUNT(`item_id`) 
FROM `menu_categories` 
    JOIN `menu_items` ON `item_category` = `cat_id` 
GROUP BY `item_category`

但它不显示 empty categories,即categories没有项目。

4

2 回答 2

4

您需要使用LEFT JOIN而不是JOIN

SELECT *, COUNT(`item_id`) 
FROM `menu_categories`
  LEFT JOIN `menu_items` ON `item_category` = `cat_id`
GROUP BY `item_category`

查看SQL 连接的可视化解释。

于 2012-08-29T12:03:32.997 回答
3

使用左连接

SELECT *, COUNT(`item_id`) 
FROM `menu_categories` 
    LEFT JOIN `menu_items` 
        ON `item_category` = `cat_id` 
GROUP BY `item_category` 
于 2012-08-29T12:03:52.080 回答