【发布时间】:2011-01-12 10:32:31
【问题描述】:
这是我的情况。
首先,我不是在研究关系数据库,我只是将访问作为一种操作数据的简单方法。
目前,我有很多桌子。
一个主表,我们称之为 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 表中还没有任何记录。
无论如何,我可以写什么查询来做到这一点:
如果 MAIN 中还没有表 X1 的记录,则添加它并将 X1 字段设置为 true。
如果 MAIN 中已经存在 X1 的记录,则更新它并将 X1 字段设置为 true。
(然后我会更新它以在我拥有的每个 X 表上运行。)
我正在考虑 INSERT INTO,但我不想覆盖已经存在的数据或产生错误(我真的不太了解这一切>_>)
提前感谢任何可以提供提示的人。
编辑 1
我以为我会先尝试将 Xx 表中的所有数据插入到 MAIN 表中(它们具有相同的结构)
所以我一开始尝试了这个:
INSERT INTO MAIN.itemnumber
(select X1.itemnumber from X1
UNION ALL
select X2.itemnumber from X2)
只在一个领域尝试过,看看它是否有效,但它没有:/
我想一旦我添加了 X 表中的所有数据,然后我运行几个 UPDATE 并为每个 Xx 表运行 WHERE EXISTS,将相应的 Xx 属性设置为 true,然后我就完成了。
但我什至很难做一些“简单”的事情,比如将几个表中的数据合并到一个......
【问题讨论】: