如何查询具有基数的表以显示所有 Pk,同时还显示具有 FK 的表中的匹配元素

Posted

技术标签:

【中文标题】如何查询具有基数的表以显示所有 Pk,同时还显示具有 FK 的表中的匹配元素【英文标题】:How to query a table with cardinality one to display all the Pk while also displaying the matching elements in a table with FK 【发布时间】:2011-09-15 00:17:11 【问题描述】:

首先,如果问题不清楚,请见谅。我会在这里解释清楚。

好的,假设我有一个表“TableA”,其中包含 (ApkColumn, x, y) 列,其中 ApkColumn 是 TableA 的主键,假设“TableA”具有以下信息:

表A

ApkColumn|| x ||是||

1 ||鲍勃 ||艾伦

2 ||琳达 ||浆果

3 ||安德鲁||大厅

还有另一个包含列的表“表 B” (BpkColumn, M,N, AfkColumn),其中 BpkColumn 是 TableB 的主键,AfkColumn 是表 A 的外键。

表B

BpkColumn||M||N||AfkColumn

1 ||物理学01||物理学基础|| 1

现在,我想查询 A 以便得到如下结果:

结果表

x||M||N

Bob||Physics01||物理学基础

琳达||null||null

安德鲁||空||空

即我想显示 TableA 中的所有元素(对于一列),如果它在 TableB 中有相应的列,则应该显示它,否则应该显示 null。

我尝试对 PK 和 FK 进行左连接。但是,它仅显示表 B 中的列。

提前致谢。

【问题讨论】:

【参考方案1】:

添加您所做的查询会很好,因为您建议的方法就是这样做的。只需确保表 A 位于连接的左侧即可:

select .....
from A left outer join B
on (A.ApkColumn=B.AfkColumn)

【讨论】:

你找到我了!我只使用连接,而不是外部连接。感谢您的帮助!

以上是关于如何查询具有基数的表以显示所有 Pk,同时还显示具有 FK 的表中的匹配元素的主要内容,如果未能解决你的问题,请参考以下文章

AWS AppSync GraphQL - 如何使用 PK/SK 查询而不是扫描整个 dynamoDB 表以获取 graphql 列表 API

sql 查询目标数据库中所有的表以其关键信息

如何使用不同的表和不同的列名连接多个查询

如何在 SQL Server 中填充我的日期维度表以获得具有此特定值的列?

我想显示所有具有指定列名的表

具有多列的表视图