sql - 使用 MS Access 跨链接表获取数据
问题描述
我是 MS Access 的新手,我正在尝试加快在 Powershell 中一直存在的数据收集过程。在 Powershell 中,我有 10 个左右的 Web API 调用来获取数据,每个调用都作为具有多个属性(字段)的对象返回。每组数据都具有与 1 个或多个其他数据集相关的字段。获取数据非常快,但是将一组对象通过管道传送到 where-object 到 select-object 需要一个多小时,而且实际上并没有那么多数据。每个对象包含 500-1500 个“记录”和 5 到 10 个“字段”,所以我想为什么不导出这些数据并使用旨在搜索数据的东西来完成这项工作呢?我将每个对象导出为单独的 .CSV 文件。所以进入MS Access..
我将每个 CSV 作为单独的表导入(很简单。)我将在本示例中将其简化为以下 3 个表:
[表格] https://i.stack.imgur.com/UCH1F.jpg
每个表都有将其与其他表相关联的字段。几乎每个表中都有某种 Id 字段与另一个表中的另一个 Id 字段相关,我需要从中提取一个名为“name”的字段。我正在尝试跟踪从播放器名称到它的网络名称到它的应用程序名称、到它的布局名称等的面包屑......我想构建一个查询,我最终只能导出为 Excel 文件. 我也更愿意只写出 SQL,除非它真的更容易理解可视化查询生成器。我正在寻找包含以下信息的工作表:
Player's Name 将包括 Players 表中的所有名称,并且仅获取该数据对我来说很有意义。SELECT Name AS PlayerName FROM Players 其他一切,不是那么多。我觉得这最终会成为一些大型查询,因为我在相关表之后更深入地了解相关表。在 Excel 中,跨选项卡使用 Vlookups 会很简单,但这似乎不是最好的方法。鉴于上述信息,我正在尝试实现以下输出:
非常感谢任何有关策略和语法的帮助!
解决方案
您正在寻找JOIN子句。
SELECT
Players.Name PlayerName, Networks.Name PlayerNetwork, Applications.Name ApplicationName
FROM
Players
LEFT OUTER JOIN
Networks
ON
Networks.ID = Players.NetworkId
LEFT OUTER JOIN
Applications
ON
Applications.Id = Players.ApplicationID
推荐阅读
- r - 创建一个搜索栏以从 R Shiny 中的表中搜索值
- azure-data-explorer - 表中每个日期时间列的最小/最大值存储在范围中
- java - JVM Threaddump OnOutOfMemoryError 无法识别的选项
- spring-boot - Should we use @Scheduled together with controller method (like @PostMaping) in SpringBoot?
- shopify - 已解决:如何在安装时添加自定义应用程序的液体片段文件?
- python - 如何将 line.set_data 用于 matplotlib 中的二维数组数据?
- c++ - SFML draw 不透支板
- r - 如何将带有分隔数据的多列分隔为R中的多行?
- ios - Cmd+r 录制模拟器而不是在 React Native 中重新加载应用
- aide - 如何将 AIDE 设置为仅包含最后一天更改的电子邮件?