这是我的情况。 首先,我没有在关系数据库上工作,我只是使用访问作为操纵数据的简单方法。目前,我有很多桌子。
一个主表,我们称之为主,另外约10个表,我们可以调用X1,X2,X3等。 X1表包含具有X1属性的项。 X2表包含具有X2属性的项目,依此类推。ACCESS/SQL:如何同时插入/更新?
所有的Xx表具有相同的字段。 MAIN表也具有相同的字段,此外还有布尔型的字段X1,X2等。
我想做什么:
我想从XX表中的数据养活主表。
事情是,可以有项目具有多个属性,所以它们可以出现在例如X1,X2,X5。
所以,我想在第一次运行这个:
UPDATE MAIN
SET itemnumber = X1.itemnumber, x1 = "true";
但它不会给什么。现在我想这只是合乎逻辑的,因为MAIN表中还没有任何记录。
无论如何,我可以写什么查询来执行此操作:
如果表X1的记录在MAIN中不存在,请添加它并将X1字段设置为true。
如果X1的记录已经存在于MAIN中,请更新它并将X1字段设置为true。
真(然后我将更新它在每一个X表我已经运行)。
我考虑INSERT INTO,但我不希望覆盖已经存在的数据或产生错误(我不知道这一切> _>)
在此先感谢谁可以提供提示。
编辑1
我以为我会首先尝试从XX表中的所有数据插入到主表(它们具有相同的结构)
所以我想这首先:
INSERT INTO MAIN.itemnumber
(select X1.itemnumber from X1
UNION ALL
select X2.itemnumber from X2)
试图在只有一个领域,看看它的工作原理,但它并不:/
我想,一旦我已经从X的表中添加的所有数据,然后我跑FE w为每个Xx表更新一个WHERE EXISTS,将相应的Xx属性设置为true,然后完成。
,但我有一个困难时期,甚至做一些“简单”的合并从几个表中的数据到一个....
不知道我们可以在sql中使用IF。会试图从中得到一些东西! – 2011-01-12 12:11:59
“IF”在Access中无效...“无效的SQL指令”。或者,也许我做得不对。 – 2011-01-12 12:46:26