sql - SQL不返回另一个表中为null的值
问题描述
我正在尝试使用 SQL 连接函数从多个表中获取信息。
我的问题是我似乎无法得到想要的结果。
select a.DRINKER, sum(C.PRICE)
from DRINKERS a
left join ORDERS b on a.DRINKER = b.DRINKER
join SERVES c on b.PUB = c.PUB and d.DRINK = c.DRINK
group by a.DRINKER;
这给出了以下结果
----------------------
|DRINKER|sum(C.PRICE)|
----------------------
| BOB | 200.10 |
| NED | 172.50 |
| JOE | 270.90 |
| TIM | 80.10 |
----------------------
但是,我希望这能够像这样给 a.DRINKER 中的所有人:
----------------------
|DRINKER|sum(C.PRICE)|
----------------------
| BOB | 200.10 |
| NED | 172.50 |
| JOE | 270.90 |
| TIM | 80.10 |
| PAT | null |
| ANN | null |
----------------------
任何指导将不胜感激,如果您还可以解释更改背后的逻辑,将不胜感激,因为我想了解我应该做什么!提前致谢!
解决方案
即使 DRINKERS 和 ORDERS 之间有左连接,ORDERS 和 SERVES 之间的连接也会过滤掉在第一个左连接中获得的任何空值。
要解决此问题,您可以尝试进一步向左加入表格
select a.DRINKER, sum(C.PRICE)
from DRINKERS a
left join ORDERS b on a.DRINKER = b.DRINKER
left join SERVES c on b.PUB = c.PUB and d.DRINK = c.DRINK
group by a.DRINKER;
推荐阅读
- firebase - Firebase.auth 错误,400 错误请求
- java - Mockito 单元测试 - 时间戳不同
- vue.js - 将数据附加到 vue 中已加载的页面(Facebook 帖子和评论)
- python - 只保留带日期的行
- botframework - botframework v4,访问 appsettings.json
- python - ~/anaconda/bin/conda: 没有这样的文件或目录
- python-2.7 - 从大型 PDF 中提取页面大小
- css - CSS 帮助 - 删除图像之间的空格 ( )
- c# - 无法使用动态 C# 强制转换通用原语
- java - 在java应用程序中存储文件