SQL查询以获取空类别

SQL查询以获取空类别,sql,join,group-by,Sql,Join,Group By,在我的分类表中,我有:cat_id、cat_name、cat_slug。 在表中,我有:item\u title、item\u id、item\u category 我使用以下SQL来获取所有类别以及它们有多少项: SELECT *, COUNT(`item_id`) FROM `menu_categories` JOIN `menu_items` ON `item_category` = `cat_id` GROUP BY `item_category` 但它不会显示空类别,即

在我的分类表中,我有:cat_id、cat_name、cat_slug。 在表中,我有:item\u title、item\u id、item\u category

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

SELECT *, COUNT(`item_id`) 
FROM `menu_categories` 
    JOIN `menu_items` ON `item_category` = `cat_id` 
GROUP BY `item_category`
但它不会显示空类别,即没有项目的类别。

您需要使用左连接而不是连接

看一看

使用左连接

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

用左join替换join非常感谢,还必须将GROUP BY更改为cat_id=
SELECT *, COUNT(`item_id`) 
FROM `menu_categories`
  LEFT JOIN `menu_items` ON `item_category` = `cat_id`
GROUP BY `item_category`
SELECT *, COUNT(`item_id`) 
FROM `menu_categories` 
    LEFT JOIN `menu_items` 
        ON `item_category` = `cat_id` 
GROUP BY `item_category`