【问题标题】:SQLite3 Update from other table in DatabaseSQLite3 从数据库中的其他表更新
【发布时间】:2020-09-15 22:31:42
【问题描述】:

我过去曾发布过同样的问题,但是,我似乎无法在我的 python 代码中实现它。

目标是使用表 Companies 中已有的信息更新表 Ships。图片供参考。

我有以下代码:

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()

当我运行它时,我没有错误,但仍然有 Null 值。 很抱歉重新发布,但确实需要一些帮助。

【问题讨论】:

    标签: python sqlite


    【解决方案1】:

    从您发布的示例数据中,我看到条件:

    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)
    

    以便删除任何现有的空白字符并可以比较数字。

    【讨论】:

    • 巨大的菜鸟错误。你的回答让我去检查两个表中的数据类型是什么。一个是文本,另一个是整数。不能那样工作!感谢您的大力帮助@forpas!
    猜你喜欢
    • 1970-01-01
    • 2013-11-23
    • 2015-02-23
    • 2020-09-14
    • 2016-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-29
    相关资源
    最近更新 更多