我有两张桌子。
果:
id || name
-----------------
1 || oranges
2 || apples
和篮子:
basket || fruit references a.id
---------------------------------
x || 1
x || 1
y || 1
y || 2
我需要选择使用count(baskets.fruit)的水果数量,其中篮子是x。我感到困惑的部分是:如果一个篮子不包含水果的条目,它需要返回0。
例如,如果我们需要篮子x的数量,我们会得到:
fruit.name || count
-------------------
apples || 2
oranges || 0
请注意,尽管篮子中的x不存在橙色,但仍会将条目返回为0。
答案 0 :(得分:1)
在表格之间设置outer join,然后进行相应的分组:
SELECT fruit.name, COUNT(baskets.fruit)
FROM fruit LEFT JOIN baskets ON baskets.fruit = fruit.id
WHERE baskets.basket = 'x'
GROUP BY fruit.id
答案 1 :(得分:0)
我们有2个表,(部分)和(需要) 大学课程的一部分...每门课程有2或3个部分,学生可以通过注册部分参加课程...学生注册的每个部分ID将插入到表格中,每个部分都没有注册不能写在take表中,只能存在于section表中。
我解决的问题是:
找到每个部分的注册,但也包括没有学生参加的部分;此类部分的注册应视为0。
我的疑问:
select distinct(section.sec_id),COUNT(section.sec_id) as enrollment
from takes,section
where section.sec_id = takes.sec_id
group by section.sec_id
union
(select sec_id , 0
from section
where not exists ( select sec_id
from takes
where section.sec_id = takes.sec_id))
我希望这对你有用。