mysql - sql count (including null) from table where 两个条件

标签 mysql sql

我有两个表,一个是 team_stats,另一个是 team_summary。
team_summary 中有 16 个 tNames,在 team_stats 的 win_lose 列中,1 表示赢,0 表示输。

team_summary            team_stats
tName W                 Period tName win_lose
AUT   null              1      AUT   1
CAN   null              2      AUT   1
DEN   null              3      AUT   1
FIN   null              Total  AUT   1
...                     1      CAN   0
                        2      CAN   0
                        ...

我想插入 team_summary 的 W 列。
当我查询

select tName, count(*) from team_stats 
where Period='Total' and (win_lose) = 1 group by tName;

像这样返回 14 行,不包括 0 行。

tName count(*)
AUT   1
CAN   6
DEN   4
...

我想获取 16 行,包括这 14 个值和 2 个为 0(或空)的值。

我该怎么做?

最佳答案

你似乎想要一个更新:

update team_summary ts left join
       (select tName, count(*) as wins
        from team_stats 
        where Period = 'Total' and (win_lose) = 1 
        group by tName
       ) t
       on ts.tName = t.tName
    set ts.summary = coalesce(t.wins, 0);

关于mysql - sql count (including null) from table where 两个条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53494115/

相关文章:

mysql - SQL计算另一个表中的行并加入

MySQL 函数使用 IN 运算符时的奇怪情况

javascript - 行查询中的单引号( Sequelize )

sql - 如何在 PostgreSQL 中执行查询结果

php - 应该如何定义这种多对多 doctrine2 关联?

mysql - SQL - 从两个表中获取元素,第三个表包含所有行

javascript - Php-javascript 代码只工作一次

mysql - 如何在MYSQL中使用Like语句?

php - 如何用PHP复制太多记录?

mysql - 将-1附加到所有但删除null