我有两个表。
table1
<>之前aid字母表Name1一个苹果2 A空气3 B球4 C猫5 C奶牛6 F足球7 G上帝之前表<>之前是援助类型id groupId 描述苹果的描述2 2 3 4 ffdadfdfd3 3 5 6 fdsfsdafasdf之前
我需要选择一个条件类型为3和groupId为4的每个字母表的表2映射计数。
我写了这样一个查询,但它没有获取所有的字母表。这些字母都有映射,只有它能抓取。
select a.alphabet, count(did) from table1 a left join table2 b on a.aid=b.aid
where b.typeId=3 and b.groupId=4 group by a.alphabet
我怎么能写出这样的查询呢?
我需要这样的输出。
<>之前字母表数一个 2B 0C 0F 0…等通过在where子句中添加typeId
和groupId
检查,通过要求所有行在这个连接表中都有值,您有效地将左连接变为内部连接。然而,这里的情况不是。如果您将类型和组检查移动到on
子句(在连接中),您应该得到所需的结果。
select
a.alphabet,
count(b.did)
from
table1 a
left join table2 b
on a.aid=b.aid and b.typeId=3 and b.groupId=4
group by
a.alphabet