我想从属于某个类别的表中获取行数(在另一个表中定义)。有点像以下。
-----------------------------------------
id | name | category
| |
1 | Name 1 | toddler
2 | Name 2 | toddler
3 | Name 3 | newborn
4 | Name 4 | toddler
5 | Name 5 | adult
我还有另一张表,其中定义了所有类别
-----------------------------------------
id | category
|
1 | toddler
2 | newborn
3 | adult
4 | elderly
现在我在第一个表上需要一个SQL查询,它可以给我一个像这样的返回结果
-----------------------------------------
category | count
|
toddler | 3
newborn | 1
adult | 1
elderly | 0
我需要使用表2中的特定类别计算表1中的每个名称并返回结果。 这似乎有一个相当简单的解决方案,但我无法理解它的工作。请帮忙!
答案 0 :(得分:4)
这是一个使用LEFT JOIN
和COUNT
的简单查询。
select c.category, COUNT(n.category) as count
from Table2 c
left join Table1 n on c.category = n.category
group by c.category
答案 1 :(得分:0)
简单。在Table2上使用表1中的左连接,然后在类别上使用计数功能,并在类别上执行分组。
select b.category, count(a.category)
from Table1 as a
left join Table2 as b
on a.id = b.id
group by b.category