我正在尝试使用另一个表中存在的信息更新表。我要更新的表称为YVDtemp,我从中获取信息的第二个表称为yvs_textsMain。我还使用第3个表来匹配我没有的任何记录,这个表叫做YVD。这是我的更新声明。
update Yvdtemp
set
NAME = yvd_textsmain.[name]
SPIC = yvd_textsmain.[rname]
EFFECT = yvd_textsmain.[desc]
where exists (
select yvd_textsMain.[name], yvd_textsMain.[rname], yvd_textsMain.[desc]
from YVD_textsMain
left outer join YVD
on (YVD_textsMain.[rname] = yvd.[spic])
where yvd.[spic] is null);
这句话似乎无效。它给了我一个错误"附近的spic':语法错误 但是,当我使用select语句时,除了update语句之外,select语句有效,我得到了YVD表中没有的所有信息,以及我想把它传递给YVDTemp表的信息。
我正在使用SQLite。
答案 0 :(得分:0)
你错过了逗号
NAME = yvd_textsmain.[name],
SPIC = yvd_textsmain.[rname],
EFFECT = yvd_textsmain.[desc]
答案 1 :(得分:0)
由于Yvdtemp
和yvd_textsmain
之间没有匹配条件,您将如何映射更新语句中的行。
根据要求,您看起来正在寻找一个Insert
命令,可以写成:
INSERT INTO Yvdtemp (NAME, SPIC, EFFECT)
Select yvd_textsMain.[name], yvd_textsMain.[rname], yvd_textsMain.[desc]
from YVD_textsMain
left outer join YVD
on (YVD_textsMain.[rname] = yvd.[spic])
where yvd.[spic] is null