首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >MySQL将0行和转换为整数0。

MySQL将0行和转换为整数0。
EN

Stack Overflow用户
提问于 2017-09-21 18:09:39
回答 2查看 29关注 0票数 0

在我的MySQL之旅中,MySQL对我的挑战越来越大。假设我有具有以下结构的TableA和TableB (简化为指出问题):

代码语言:javascript
复制
TableA
+------------------+
| IDA| Description |
|----|-------------|
| 1  | Something   |
| 2  | Else        |
| 3  | IDK         |
+------------------+

TableB
+------------------+
| IDA   | Amount   |
|------------------|
| 1     | 5        |
| 2     | 7        |
| 2     | 17       |
| 1     | 15       |
+------------------+

我的目标是现在,我总结每一个id的数量。因此,我使用以下代码

代码语言:javascript
复制
SELECT (SELECT SUM(amount) FROM TableB WHERE IDA = a.IDA) as Total, Description FROM TableA a

只要我在我的TableB中有一行代码,这段代码就能工作。在这个例子中,我得到了NULL. 3的--的总数在我的更复杂的代码中,我将用这段代码进行计算,这样整个字段就会返回NULL

  • 我是否能够用0替换NULL 或转换它?
  • 是否有可能在那里设置if there子句?
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-09-21 18:12:11

代码语言:javascript
复制
SELECT (SELECT SUM(IFNULL(amount,0)) FROM TableB WHERE IDA = a.IDA) as Total, Description FROM TableA a

部件IFNULL(amount,0)意味着当“金额”为空时,“其他值”返回值为0。

票数 2
EN

Stack Overflow用户

发布于 2017-09-21 18:22:25

使用coalesceleft join的另一种方法

代码语言:javascript
复制
select a.*,
coalesce(sum(b.Amount),0) 
from tablea a
left join tableb b using(IDA)
group by a.IDA

演示

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46350599

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档