sql - 连接表 - 仅显示左表的每一行一次,并添加一行包含未连接到表的数据
问题描述
我有一个看起来像这样的表:
产品:
order_id prices
_______ _____
2 20
3 11
null 40
订单:
id number
1 30
2 50
3 10
4 10
我想得到下表:
id number price
-- ------ -----
1 30 null
2 50 20
3 10 11
4 10 null
null(0) null(0) 40
外键显然是 order_id -> 订单。可以为空。
正如您可能看到的,如果有产品链接将它们组合在一起,我想包括表订单中的所有行。如果没有链接,则只显示 null 和“40”(“断开”产品的总和)
任何人都可以帮助我吗?
解决方案
我想你想要一个full join
:
select o.id o.number, p.price
from orders o full join
products p
on p.order_id = o.id;
推荐阅读
- mysql - 选择从当前周的周一到下周日的日期
- cassandra - Cassandra 驱动程序中是否有支持 Java 二维字符串数组的编解码器?
- c# - 如何使用 Azure devops CI/CD 部署 .net core windows 服务?
- sql - 有没有办法为 Azure SQL Server 设置默认的 Azure SQL 数据库定价层
- vue.js - 在 v-list-item 中嵌入(子)组件
- android-studio - 将 Flutter 包发布到本地 .m2 或私有 Nexus-Repository
- c# - 为一个表中的嵌套数据创建简化查询 (.NET Core)
- angular - 角 | 如何动态更改 ngTemplateOutlet 以实现响应目的
- javascript - 提交表单后如何保留切换复选框状态?
- ubuntu - 在远程服务器上运行 jupyter notebook 时如何使 julia 内核可用