Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从数据库中的其他表更新SQLite3_Python_Sqlite - Fatal编程技术网

Python 从数据库中的其他表更新SQLite3

Python 从数据库中的其他表更新SQLite3,python,sqlite,Python,Sqlite,我在过去也提出过同样的问题,但是,我在python代码中实现它时似乎失败了 目标是使用表公司中已有的信息更新表发货。图片供参考 我有以下代码: import sqlite3 # connect to database conn = sqlite3.connect('PSC.sdb') # create cursor c = conn.cursor() c.execute(''' UPDATE ships SET "ISM Performance PM" =

我在过去也提出过同样的问题,但是,我在python代码中实现它时似乎失败了

目标是使用表公司中已有的信息更新表发货。图片供参考

我有以下代码:

import sqlite3

# connect to database
conn = sqlite3.connect('PSC.sdb')
# create cursor
c = conn.cursor()
c.execute('''
    UPDATE ships
    SET "ISM Performance PM" = (SELECT companies."ISM Performance PM"
                                FROM companies
                                WHERE ships."ISM IMO" = companies."ISM IMO")''')

conn.commit()
conn.close()
当我运行它时,我没有任何错误,但一直有空值。
很抱歉重新发布,但确实需要一些帮助。

从您发布的示例数据中,我看到以下情况:

WHERE ships."ISM IMO" = companies."ISM IMO"
应成功并正确更新表。

但您可以尝试在比较之前修剪值:

WHERE TRIM(ships."ISM IMO") = TRIM(companies."ISM IMO")
或将其转换为整数:

WHERE (ships."ISM IMO" + 0) = (companies."ISM IMO" + 0)

这样就可以删除任何现有的空白字符,并可以比较这些数字。

HUUGE noob错误。你的回答让我去检查两个表中的数据类型。一个是文本,另一个是整数。不能那样工作!谢谢你的帮助@forpas!