sqlite更新(不加入)
问题描述:
很新的SQLite(和SQL)。尝试使用另一个表修改一个表。sqlite更新(不加入)
create table Person(Key1 INTEGER, Key2 INTEGER, Name, IsDead, PRIMARY KEY (Key1,Key2));
create table Zombie(Key1 INTEGER, Key2 INTEGER, PRIMARY KEY (Key1,Key2));
我想根据僵尸中提供的列表更新IsDead列。 SQLite显然不能使用连接与更新。考虑UPDATE或REPLACE语句。 预先感谢您。
根据@Tyler Ferraro,以下是解决方案。
UPDATE Person
SET IsDead = 1
WHERE EXISTS
(
SELECT *
FROM Zombie
WHERE Person.Key1 = Zombie.Key1 and Person.Key2 = Zombie.Key2
);
下面的工作单键,但我不知道如何处理组合键。
UPDATE Person
SET IsDead = 1
WHERE Key1
IN
(
SELECT Key1
FROM Zombie
);
答
我想你会发现你这里寻找答案:Update table values from another table with the same user name
如果你有合适的主键的设置,你这样做,那么这应该是相当直截了当。
+0
谢谢。这就是它。 – jobobo
答
您可以利用INSERT或REPLACE INTO声明。
INSERT OR REPLACE INTO Table1
(col1,col2,col3)
select Col1,Col2,Col3
from Table1 t1
inner join Table2 t2 on t1.Col1 = t2.Col1
如果您在使用语句基于你的逻辑一个或多个列创建唯一索引面对任何重复记录然后重复问题不会出现。
CREATE UNIQUE INDEX idxName ON Table1 (Col1,Col2)
你能举一个你的更新语句的例子吗?什么不工作。 – Genzume
[更新具有相同用户名的另一个表中的表值的可能的副本](https://*.com/questions/3845718/update-table-values-from-another-table-with-the-same-user-姓名) –