首页 > 解决方案 > Microsoft Access 连接 4 个表以显示 3 个表中的特定值,但主表中的所有值

问题描述

我已经为用户创建了一个数据库来“关注”电视节目,我需要创建一个表单来显示每个节目以及该特定节目的所有相关信息。

我有四个表如下:
节目(主表)、
网络、
节目流派(将多个流派链接到一个节目)、
流派。关系和所有字段如下图所示。

关系:

目前我有一个页面显示以下信息:showID、showName、showAired、networkName、showStatus、showRuntime、showSeasons、showEpisodes、showOverview。
理想情况下,我希望有一个列表框来显示与特定节目相关的类型数组。我已经尝试了很长一段时间来提出一个查询来做到这一点,我设法得到的最接近的显示了相关信息,但添加了重复的页面。
这是我最近的尝试:

SELECT * FROM Shows A
INNER JOIN Networks B ON B.networkID = A.networkID
INNER JOIN ShowGenres C ON C.showID = A.showID
INNER JOIN Genres D ON D.genreID = C.genreID;

任何帮助将不胜感激,在此先感谢。

标签: sqlms-access

解决方案


必须了解可以与数据逻辑结合使用的表示级逻辑。非常一般地 - 在 1:Many 中 - 您对包含这两个字段的字段的查询将在每个 Many 记录中重复 1 个表值。这不能通过任何查询设计来改变,因为它是数据逻辑中固有的。

但在演示级别,您可以控制显示。使用报表 - 数据源可以是查询 - 但报表属性提供分组,您可以将 1 字段值作为组标题 - 因此只显示一次;然后在它下面列出所有的许多记录。

它本身不是一个列表框,但取决于一个人对报告/子报告的创造性,一个人可能会产生这种风格。但最后你必须在演示级别上工作。


推荐阅读