我正在尝试从已创建关系的两个表创建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.有人可以指导我如何做到这一点吗?
答案 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
此示例在MySQL上进行了测试,但任何数据库都可以用于此,因为它非常基础。 CREATE TABLE语句可能会有所不同,但查询应该适用于其他数据库。