如何从多个表的多个列中获取唯一值的完整列表?

发布于 2024-09-16 03:51:30 字数 642 浏览 8 评论 0原文

背景故事:我遇到了一个奇怪的情况。我自己的一个附属组织为我们提供了一个我们大量使用的数据库;其他一些组织也使用它,但我们的记录轻松超过总数的 90%。我们有一个连接到实时数据库的用于数据输入的 Web 前端,但我们仅以定期发送给我们的选定表的 Access 文件形式获取后端数据。

一般来说,这是一个麻烦,但我在每份报告中遇到的一个关键问题是将我们组织生成的记录与其他组织生成的记录区分开来。记录由创建它们的员工标识,但我没有(并且不太可能获得)用户表本身 - 这意味着我必须手动保留哪些用户 ID 对应于哪些用户,以及这些用户是否对应的列表属于我们的组织等。现在,我正在构建一种影子数据库,它链接到数据提取,并具有将此类信息附加到数据表上的查询 - 因此,当我提取记录列表时,我可以通过用户 ID、姓名、组织、角色等获取它们。

问题:并非所有用户都会创建或修改所有类型的记录,因此我需要使此列表完整的用户 ID 分散在多个表中。如何从所有这些表中创建唯一用户 ID 的列表?我目前正在使用两个最大表中的 ID 的并集,但我不知道是否可以在子查询上堆叠子查询以使其工作 - 而且我有点犹豫是否要在不知道的情况下为 Access 编写该子查询如果它最终能起作用的话。我也对其他方法感兴趣。

TL;DR:获取分布在多个表中的多个列的唯一值的列的最简单方法是什么?

Back story: I have an odd situation. An organization affiliated with my own provides us with a database that we use heavily; a few other organizations also use it, but our records are easily more than 90% of the total. We have a web frontend for data entry that is connected to the live database, but we only get the backend data as an Access file of selected tables that are sent to us periodically.

That's a hassle in general, but a critical problem that I run into in every report is differentiating records produced by our organization from others'. Records are identified by the staff who created them, but I don't have (and am unlikely to get) the users table itself - which means I have to manually keep a list of which user IDs correspond to which users, and if those users belong to our organization, etc. Right now, I'm building a sort of shadow DB that links to the data extract and has queries that append that kind of information onto the data tables - so when I pull out a list of records, I can get them by user ID, name, organization, role, etc.

The problem: not all users create or modify records of all types, so the user IDs I need to make this list complete are scattered across several tables. How can I create a list of unique user IDs from across all of these tables? I'm currently using a union of the IDs from the two biggest tables, but I don't know if I can stack subquery upon subquery to make that work - and I'm kind of hesitant to dive into writing that for Access without knowing if it will ultimately work. I'm interested in other methods, too.

TL;DR: What's the simplest way to get a column of the unique values of several columns that are spread across several tables?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

感性不性感 2024-09-23 03:51:30

将每个表上的 SELECT 查询合并为 UNION 查询。 UNION 查询返回不同的值。

SELECT UserID FROM Table1
UNION
SELECT UserID FROM Table2
UNION
SELECT UserID FROM Table3;

Combine SELECT queries on each of the tables into a UNION query. The UNION query returns distinct values.

SELECT UserID FROM Table1
UNION
SELECT UserID FROM Table2
UNION
SELECT UserID FROM Table3;
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文