这是我的情况。首先,我不在关系数据库上工作,我只是将访问作为一种简单的方式来处理数据。目前,我有很多桌子。
一个主表,我们称其为MAIN,另外约10个表,我们可以称其为X1,X2,X3等。X1表包含具有X1属性的项目。X2表包含具有X2属性的项目,依此类推。
所有Xx表都具有相同的字段。MAIN表也具有相同的字段,此外还有布尔值X1,X2等。
我想做的事:
我想用来自Xx表的数据来提供MAIN表。
事实是,可能存在具有多个属性的项目,因此它们可以出现在例如X1,X2,X5中。
因此,我首先尝试运行此命令:
UPDATE MAIN
SET itemnumber = X1.itemnumber, x1 = "true";
但它没有任何作用。现在,我认为这只是合乎逻辑的,因为MAIN表中还没有任何记录。
无论如何,我可以写什么样的查询来做到这一点:
如果表X1的记录在MAIN中尚不存在,请将其添加并将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表中的所有数据,然后为每个Xx表运行了带有WHERE EXISTS的UPDATE,并将相应的Xx属性设置为true,就可以了。
但是我什至很难做一些“简单”的事情,就像将几个表中的数据合并到一个表中一样。
这是我在此期间使用的替代解决方案:
INSERT INTO MAIN
SELECT X1.itemnumber AS itemnumber
FROM X1
WHERE not exists (select itemnumber
from MAIN
where MAIN.itemnumber = X1.itemnumber);
对每个Xx表重复此操作。照顾重复。
然后,添加属性:
UPDATE MAIN SET X1 = true
WHERE exists (select *
from X1
where X1.itemnumber = MAIN.itemnumber);
对每个Xx表重复此操作。
可能不是最有效的方法(实际上必须编辑查询24次…),
但是,它确实有效…
现在,如果有人可以一口气做到这一点…
问题内容: 我只是对某事感到好奇。让我说我有一个表,我将更新该值,然后将其删除,然后插入新的1。如果我以这种方式编写代码,这将非常容易: 但是,如果使用“ update”语句,它将更加容易。但我的问题是,有可能同时完成这3个步骤吗? 问题答案: 引用Oracle事务处理语句文档: 事务是一个逻辑的 原子工作单元 ,包含一个或多个SQL语句。事务对SQL语句进行分组,以使它们要么全部提交(这意味着它
问题内容: INSERT INTO EMP_1 (EMP_NUM, EMP_LNAME, EMP_FNAME, EMP_INITIAL, EMP_HIREDATE, JOB_CODE) VALUES (‘101’, ‘News’, ‘John’, ‘G’, ‘08-Nov-00’, ‘502’), (‘102’, ‘Senior’, ‘David’, ‘H’, ‘12-Jul-89’, ‘501’
主要内容:语法,示例,使用一个表的数据填充另一个表SQL INSERT INTO 语句用于向表中插入新的数据行。 语法 INSERT INTO 语句有两种基本的用法。 1) 按指定的列插入数据,语法如下: INSERT INTO table_name (column1, column2, column3,...columnN) VALUES (value1, value2, value3,...valueN); column1, column
问题内容: 我想知道是否有可能在SQL代码的CASE语句中包含INSERT INTO语句。 这是我要执行的操作的粗略伪代码: 问题答案: 您将需要用语句代替。大概是这样的(不确定db2的语法):
问题内容: 我试图加快我的代码的速度,瓶颈似乎是通过ODBC从外部Access到Jet MDB的单独插入语句。我需要一次插入100行,并且必须重复多次。 是否可以使用SQL代码在表中插入多行?这是我尝试过的一些方法,但是它们都不起作用。有什么建议? 问题答案: 我在R(我正在使用的软件)中找到了一个优雅的解决方案。RODBC软件包具有函数sqlSave,该函数允许一次将整个data.frame追加
问题内容: 我的数据库包含三个表叫,和。链接表仅包含两列,即对象记录的标识和数据记录的标识。 我想从链接到一个给定对象标识的位置复制数据,并在不同的给定对象标识中插入相应的记录。 我 可以 通过选择一个表变量,并为每次迭代进行两次插入来循环执行此操作。 这是最好的方法吗? 编辑 :我想避免循环的原因有两个,第一个是我很懒,并且循环/临时表需要更多的代码,更多的代码意味着有更多的地方出错,第二个原因