SQL Query也可以获取空类别

时间:2012-08-29 12:01:53

标签: sql join group-by

在我的categories表中,我有:cat_idcat_namecat_slug。 在表格items中,我有:item_title, item_iditem_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`

但它没有显示空categories,即没有项目的categories

2 个答案:

答案 0 :(得分:4)

您需要使用LEFT JOIN代替JOIN

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

查看A Visual Explanation of SQL Joins.

答案 1 :(得分:3)

使用LEFT JOIN

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