Windows

根據另一個表中的參考值更新表

  • January 3, 2018

我有兩個結構如下的表:

Table1 (reference table)
| Name UNIQUE | Value(Double) |

Table2 (data table)
| Name1 | Name2 | Number(Int) |

我想在 Table2 的每一行中的數字上加 10,其中 Name1 的值(來自 Table1)大於 Name2 的值(來自 Table1)。如何在 Sqlite3 中做到這一點?

您需要使用UPDATE語句來執行此操作。不幸的是,SQLite 不支持JOIN在語句中使用子句,UPDATE因此您必須像這樣模擬子句JOIN內的WHERE子句:

UPDATE Table2
  SET Number = Number + 10
WHERE (SELECT Value FROM Table1 WHERE Name = Table2.Name1) >
      (SELECT Value FROM Table1 WHERE Name = Table2.Name2);

類似的問題也可能對您有所幫助:

在 sqlite 上加入表時如何進行更新

在 sqlite 中使用 JOIN 更新

引用自:https://dba.stackexchange.com/questions/194410