如何在mysql5中编写这种查询



我有两个表。

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子句中添加typeIdgroupId检查,通过要求所有行在这个连接表中都有值,您有效地将左连接变为内部连接。然而,这里的情况不是。如果您将类型和组检查移动到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

相关内容

  • 没有找到相关文章

最新更新