使用SQLite中的join中的另一列的值更新完整列

时间:2015-02-03 16:07:25

标签: sqlite join sql-update

我在Sqlite中遇到了一个问题,我很绝望,因为没有任何作用......我有一个完美的工作:

select hierarchies.workclass_g1 from adult join hierarchies 
on adult.workclass=hierarchies.workclass;

现在我希望在表格中找到此联接的结果。通过更新或添加或插入或其他任何东西,我只需要将其存储在某个地方。 应该工作的所有不同查询都不起作用。这里的语法没有错误,但只有连接的FIRST值才被放入每一行:

update adult set test=(select hierarchies.workclass_g1 
from adult join hierarchies on adult.workclass=hierarchies.workclass) 

与插入相同,只插入第一个值:

insert into adult (test) select hierarchies.workclass_g1 
from adult join hierarchies on adult.workclass=hierarchies.workclass

此语法不起作用(接近“set”:语法错误)。

update adult join hierarchies on adult.workclass=hierarchies.workclass 
set adult.test=hierarchies.workclass_g1

相同(靠近“join”:语法错误)。

update adult set test=hierarchies_g1 join hiearchies 
on adult.workclass=hierarchies.workclass

我认为这不是太复杂,语法一定有问题,我不知道。任何帮助都非常感谢

1 个答案:

答案 0 :(得分:0)

你首先UPDATE语句几乎是正确的;问题是您正在加入adult表的单独实例,因此连接的结果与正在更新的adult行无关。

只需删除冗余表:

update adult
set test = (select hierarchies.workclass_g1 
            from hierarchies
            where adult.workclass = hierarchies.workclass)