繁体   English   中英

使用sqlite3和python更新表中现有列的值

Update values from an existing column in a table with sqlite3 and python

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我正在尝试将table2中的列添加到现有table1中。

table1看起来像这样(这是2列的示例,但实际上我有100多个):

id | item | price
-------------
 1 | book | 20  
 2 | copy | 30   
 3 | pen  | 10 

和table2是这样的:

id | item 
----------
 1 | book 
 2 | copy 
 3 | pen  

我想得到这个:

id | item | price | item 
---------------------
 1 | book | 20    | book  
 2 | copy | 30    | copy   
 3 | pen  | 10    | pen  

但是,我得到以下内容,所有相同的第一行值:

id | item | price | item 
---------------------
 1 | book | 20    | book  
 2 | copy | 30    | book   
 3 | pen  | 10    | book  

我在代码中做错了什么?

con = sqlite3.connect(":memory:")
cur = con.cursor()

cur.execute("ALTER TABLE table1 ADD COLUMN item text")
cur.execute("UPDATE table1 SET item = (SELECT item FROM table2 WHERE table2.id = id)")

谢谢!

1 个回复

您需要一个相关的子查询:

UPDATE table1
    SET item = (SELECT t2.item FROM table2 t2 WHERE t2.id = table1.id);

我很惊讶您的版本没有返回错误。 WHERE条件解释为WHERE table2.id = table2.id ,这意味着应返回所有行。

2 sqlite3和python问题-更新表中的值

在这里编程的新手。 我正在尝试构建自己的程序,我想做的是更新值中已有的表(对),其中包含三列:x,y和z都是整数。 因此,如果我有a和b,那么我将用测试中的值更新z。 我到底在做什么错? 谢谢 启动时出现此错误: 输出应该更新包含原始两个值的行的表值。 ...

3 SQLite 3使用python 3.8更新表中的行

目前,我有一个根据以下代码创建的数据库: 在一个单独的程序中,我正在与此数据库进行交互,但是每当我尝试更新数据库时,由于某种原因它将无法正常工作。 这是用于从表中选择所有记录的代码,它们可以正确地获取所有记录: 然后这是我用于更新登录名的代码,它并没有像我期望的那样更新“ BEN”记录: ...

4 使用sqlite3和python更新表

我正在尝试使用sqlite3和python更新名为“ stats”的表。 该表具有[username, correct, total] 。 这是我正在使用的代码: 但是,表中的值永远不会更新。 new_correct和new_total正确返回。 另外,有没有一种方法可以在不先调 ...

5 无法更新sqlite3中的列值

我是iPhone编程的新手,希望有人能够为我解决几天以来一直在尝试解决的问题。 我创建了一个数据库和一个表。 在我的程序中,它包含5个字段,我将其中两个字段设置为零。 后来我将这些字段更新为一个目的。 但是问题是我无法将字段值设置为1。 我将粘贴以下代码: 谁能告诉我查询中的错 ...

9 使用sqlite3在python中删除表

我对python和sqlite3有疑问。 我想从Python中删除一个表。 命令 不行。 做的工作。 execute方法允许创建表。 但是,它不会掉落吗? 是否有一个原因? ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2021 STACKOOM.COM