使用第二个表中的选定行从两个表访问报告

时间:2017-11-01 17:22:29

标签: sql database ms-access

我正在尝试从已创建关系的两个表创建Access报告。我的问题是第二个表对于连接的字段名称中的每个条目都有多个行。我只需要每个条目的第二个表的第一行的值。第二个表中标题为标准的列中的数字1对应于我要保留的第一行。请考虑以下示例:

First table
name value 
100  2
101  0
107  20

Second table
name test criterion
100  9    1
100  7    2
101  6    1

使用“name”连接两个表。我需要在报告中看到以下内容:

Report
name vale test
100  2    9
101  0    6

因此,第二个表的第二行被跳过,因为它有一个重复的名称输入 - 即100.有人可以指导我如何做到这一点吗?

1 个答案:

答案 0 :(得分:1)

假设这些表:

CREATE TABLE `first_table` (
  `idfirst_table` int(11) NOT NULL AUTO_INCREMENT,
  `name` int(11) NOT NULL,
  `value` int(11) NOT NULL,
  PRIMARY KEY (`idfirst_table`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1;

CREATE TABLE `second_table` (
  `idsecond_table` int(11) NOT NULL AUTO_INCREMENT,
  `name` int(11) NOT NULL,
  `test` int(11) NOT NULL,
  `criterion` int(11) NOT NULL,
  PRIMARY KEY (`idsecond_table`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1;

使用您在问题中提供的相同数据,查询将是:

SELECT first_table.name, first_table.value, second_table.test
FROM first_table
JOIN second_table ON first_table.name = second_table.name
WHERE second_table.criterion = 1

结果是: enter image description here

此示例在MySQL上进行了测试,但任何数据库都可以用于此,因为它非常基础。 CREATE TABLE语句可能会有所不同,但查询应该适用于其他数据库。

相关问题