Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 为什么Access在联合后返回一个较小的表,而联合不应该添加任何行?_Sql_Ms Access - Fatal编程技术网

Sql 为什么Access在联合后返回一个较小的表,而联合不应该添加任何行?

Sql 为什么Access在联合后返回一个较小的表,而联合不应该添加任何行?,sql,ms-access,Sql,Ms Access,我正在测试一个在Access中定期更新表的过程,但我发现了一个我不理解的行为 我有我的主表,然后是第二个表,它是主表的子集,是对主表的模拟更新 Master-100000行 subMaster-500行这500行已经包含在Master中 查询: SELECT field1, field2, field3 FROM Master UNION SELECT field1, field2, field3 FROM subMaster 返回

我正在测试一个在Access中定期更新表的过程,但我发现了一个我不理解的行为

我有我的主表,然后是第二个表,它是主表的子集,是对主表的模拟更新

Master-100000行

subMaster-500行这500行已经包含在Master中

查询:

SELECT field1, field2, field3 FROM Master
UNION
SELECT field1, field2, field3 FROM subMaster
返回<100000行。从任一表中选择DISTINCT*不会删除任何行

如果这个查询的行为符合预期,我希望它返回100000行,因为subMaster中的每一行都包含在Master中,所以subMaster中的每一行都应该作为重复项排除。结果表怎么可能更短?有没有办法让它按我预期的方式工作?

选择不同*与选择不同字段1、字段2、字段3不同

UNION删除表内和表之间的重复项。这三列在Master中显然是重复的