sql - 生成两个表之间不存在的所有组合,并将它们与已经存在的组合结合 SQL
问题描述
我有 3 张桌子:
- 一种
- 乙
- C
C 是 A 和 B 之间的关联类。这意味着 A 和 B 之间存在多对多关系。C 也有自己的字段,这些字段不是 A/B 的主键。
我想为给定的 A.ID (PK) 返回 C 中的所有字段。现在这部分可能会返回 0 到 * 结果。但我总是希望返回与 B 中的记录相同数量的结果。也就是说,我想用 Null 值填充 A.ID 和 B(C 中不存在的)之间缺失的组合。
我正在尝试在 Access 中执行此操作。如果有帮助,这里有一张图片,其中包含我正在尝试使用的特定表及其字段。
其中 A 是 ASC,B 是航班,C 是 FlightHistory。
解决方案
您将需要 2 个查询,一个选择 B 的所有 ID 以及所需的 AID,一个查询选择所有这些组合,外连接到 C 中的现有组合。这可以写在单个查询中(带有子查询) 像这样:
SELECT AB.AID, AB.BID, C.Desc
FROM (SELECT A.AID, B.BID FROM A, B WHERE (((A.AID)=1))) AB
LEFT JOIN C ON (AB.BID = C.BID) AND (AB.AID = C.AID);
推荐阅读
- javascript - 如何遍历 cloudinary 查询的结果
- c++ - 无论我的反馈字符串说什么 .find 都会进入 if 语句
- github - 我应该把我的“https://github.com”用户名放在哪里,以便通过 github 操作从我的私人仓库中提取?
- intellij-idea - 使用最新版本的 IntelliJ Idea 创建 Groovy 类时出错
- python - valueError: y 必须是结构化数组,第一个字段是二进制类事件指示器,第二个字段是事件/审查员的时间
- python - AttributeError:“NoneType”对象没有属性“pAddress”?Python
- javascript - Promise 比预期更早地解决并且不返回 AXIOS 调用值
- neo4j - org.neo4j.ogm.context.GraphEntityMapper 抛出 IllegalArgumentException:无法将 Double 字段设置为 java.math.BigDecimal
- mysql - 在多个不同的日期 MYSQL 中将表 A 中的多行插入表 B
- npm - 当我尝试在可视化编辑器上安装 bakeryswap libery 时遇到问题