如何查询具有基数的表以显示所有 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