这是我的情况。
首先,我不是在关系数据库上工作,我只是使用访问作为操作数据的简单方法。
目前,我有很多桌子。
一个主表,我们称之为 MAIN,还有大约 10 个其他表,我们可以称之为 X1、X2、X3 等。
X1 表包含具有 X1 属性的项目。 X2 表包含具有 X2 属性的项目,依此类推。
所有 Xx 表都有相同的字段。 MAIN 表也有相同的字段,此外还有布尔值字段 X1、X2 等。
我想做的事:
我想向 MAIN 表提供 Xx 表中的数据。
事实是,有些项目可能具有多个属性,因此它们可以出现在 X1、X2、X5 中。
所以我首先尝试运行这个:
UPDATE MAIN
SET itemnumber = X1.itemnumber, x1 = "true";
但它没有给出任何东西。现在我认为这只是合乎逻辑的,因为主表中还没有任何记录。
不管怎样,我可以写什么查询来做到这一点:
如果MAIN中尚不存在表X1的记录,则添加该记录并将X1字段设置为true。
如果MAIN中已经存在X1的记录,则更新它并将X1字段设置为true。
(然后我会更新它以在我拥有的每个 X 表上运行。)
我正在考虑 INSERT INTO,但我不想覆盖已经存在的数据或生成错误(我真的不太了解这一切 >_>)
预先感谢任何可以提供提示的人。
edit 1
我想我首先尝试将 Xx 表中的所有数据插入到 MAIN 表中(它们具有相同的结构)
所以我一开始尝试了这个:
INSERT INTO MAIN.itemnumber
(select X1.itemnumber from X1
UNION ALL
select X2.itemnumber from X2)
只在一个字段上尝试一下,看看它是否有效,但它不起作用:/
我想一旦我添加了 X 表中的所有数据,然后我对每个 Xx 表使用 WHERE EXISTS 运行一些 UPDATE,将相应的 Xx 属性设置为 true,然后就完成了。
但我什至很难做一些“简单”的事情,比如将几个表中的数据合并到一个表中......