Wol*_*ish 0 sql database ms-access ms-access-2010
首先,我必须为过去几天给出Access标签的冲击道歉.它不像MS-SQL :(
好的,我有一个小工作表,包含3,500条记录.我正在尝试将它们修剪为需要修改以适合我们的迁移应用程序的特定集合.
我开始了
SELECT tempMainTab.*
FROM tempMainTab INNER JOIN tempCritTab
ON tempMainTab.[LINK] <> tempCritTab.[LINK]
Run Code Online (Sandbox Code Playgroud)
哪个好,对吧?(对?)
但当然,没有任何东西第一次起作用:
查询无法完成.查询结果的大小大于数据库的最大大小(2GB),或者磁盘上没有足够的临时存储空间来存储查询结果.
所以,我关闭了我打开的tempCritTab的现有窗口,并再次尝试.
不:
Access无法读取表格.该表可能已损坏或可能不存在.
(或类似的规定)
所以,我尝试了Compact/Repair工具.这似乎有用......有点儿.
现在,而不是预期的1,200行,我得到7,125,920行!?
现在我刚刚尝试再次运行查询.没有骰子 - 与第一个相同的错误.
我哪里出错了?
我的猜测是你真的想要:
SELECT tempMainTab.*
FROM tempMainTab LEFT JOIN
tempCritTab
ON tempMainTab.[LINK] = tempCritTab.[LINK]
WHERE tempCritTab.[LINK] IS NULL;
Run Code Online (Sandbox Code Playgroud)
这会使得主表中的行不在暴击表中 - 如果你想要逻辑相反,则反转顺序.
您的版本基本上生成两个表的笛卡尔积.