Sql 这个数据库看起来真的很大?

Sql 这个数据库看起来真的很大?,sql,database,ms-access,ms-access-2010,Sql,Database,Ms Access,Ms Access 2010,首先,我必须为我在过去几天里给访问标签的攻击道歉。它与MS-SQL完全不同:( 好的,我有一个小工作表,其中包含3500条记录。我正试图将它们删减到一个特定的集合,需要修改以适应我们的迁移应用程序 我从 SELECT tempMainTab.* FROM tempMainTab INNER JOIN tempCritTab ON tempMainTab.[LINK] <> tempCritTab.[LINK] 选择tempmain选项卡* 从TempMain选项卡内部连接temp

首先,我必须为我在过去几天里给访问标签的攻击道歉。它与MS-SQL完全不同:(

好的,我有一个小工作表,其中包含3500条记录。我正试图将它们删减到一个特定的集合,需要修改以适应我们的迁移应用程序

我从

SELECT tempMainTab.*
FROM tempMainTab INNER JOIN tempCritTab 
ON tempMainTab.[LINK] <> tempCritTab.[LINK]
选择tempmain选项卡*
从TempMain选项卡内部连接tempCritTab
在tempMainTab.[LINK]tempCritTab.[LINK]
哪个是可以的,对吗?(对吗?)

但当然,没有什么东西能第一次起作用:

无法完成查询。查询的大小 结果大于数据库的最大大小(2GB),或者没有 磁盘上有足够的临时存储空间来存储查询结果

因此,我关闭了已打开的tempCritTab的现有窗口,然后重试

没有:

Access无法读取该表。该表可能已损坏或不存在

(或类似的东西)

因此,我尝试了压缩/修复工具。这似乎很有效……有点。
现在,我得到的不是预期的1200行,而是7125920行!?
现在我刚刚尝试再次运行查询。没有骰子-与第一个相同的错误


我哪里出错了?

我猜你真的想要:

SELECT tempMainTab.*
FROM tempMainTab LEFT JOIN
     tempCritTab 
     ON tempMainTab.[LINK] = tempCritTab.[LINK]
WHERE tempCritTab.[LINK] IS NULL;
这将获取主表中不在crit表中的行——如果您想让逻辑反过来,则颠倒顺序


您的版本基本上生成两个表的笛卡尔积。

我猜您真的想要:

SELECT tempMainTab.*
FROM tempMainTab LEFT JOIN
     tempCritTab 
     ON tempMainTab.[LINK] = tempCritTab.[LINK]
WHERE tempCritTab.[LINK] IS NULL;
这将获取主表中不在crit表中的行——如果您想让逻辑反过来,则颠倒顺序


您的版本基本上产生了两个表的笛卡尔积。

Holy smidge,难怪我的笔记本电脑热关机。非常感谢。Holy smidge,难怪我的笔记本电脑热关机。非常感谢。