【问题标题】:Update SQLite database using select使用 select 更新 SQLite 数据库
【发布时间】:2021-04-07 04:25:54
【问题描述】:

我有一个 SQLlite 数据库,其中包含我想根据另一个表更新的字段。我通常会使用以下类型的查询来做到这一点

UPDATE Table2
SET Value = t1.Value
FROM Table2 t2
INNER JOIN Table1 t1 on t1.ID = t2.ID

但 SQLite 似乎不喜欢这种语法。有人能告诉我 SQLite 的正确语法是什么吗?

【问题讨论】:

    标签: sql sqlite sql-update


    【解决方案1】:

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

    UPDATE Table2
    SET Value = (SELECT t1.Value FROM Table1 t1 WHERE t1.ID = Table2.ID)
    

    查看简化的demo。

    虽然 SQLite 从 3.33.0 (2020-08-14) 版本开始支持 UPDATE ... FROM 语法,但您可以将语句编写为:

    UPDATE Table2
    SET Value = t1.Value
    FROM Table1 AS t1
    WHERE t1.ID = Table2.ID
    

    查看简化的demo。

    【讨论】:

    • 出于某种原因(我通过 Python 访问数据库),这两种解决方案都有语法问题。不过感谢您的回复。我会四处寻找,看看我是否能找出原因
    • @RichardB 正如您在演示中看到的那样,语法和预期结果是正确的。所以问题肯定出在其他地方。
    猜你喜欢
    • 2021-12-19
    • 1970-01-01
    • 1970-01-01
    • 2021-08-06
    • 2021-07-27
    • 1970-01-01
    • 1970-01-01
    • 2021-06-22
    • 2017-01-15
    相关资源
    最近更新 更多