使用外键引用的SQLite UPDATE值

时间:2017-01-26 20:36:02

标签: sqlite sql-update foreign-keys left-join

给定三个表,其中一个表作为包含两个外键列的联结表,我尝试进行插入,以便v-bind:key="Math.random()"TableA.prefix,{{ 1}}和TableA.number,我可以更新TableB.prefix中匹配行的TableB.number列:

因此,当JunctionTable中的匹配行目前看起来像:

JunctionTable.is_archived

TableA和TableB中的匹配行如下所示:

表A

JunctionTable

表B

+----------------------------------------------------------------------+
|     id     |     tblA_id     |     tblB_id     |     is_archived     |
|     3      |        7        |       98        |          0          |
+----------------------------------------------------------------------+

我想像这样更新+----------------------------------------------+ | id | prefix | number | | 7 | CLA | 754 | +----------------------------------------------+ 值:

+----------------------------------------------+
|     id     |     prefix     |     number     |
|     98     |      RED       |       221      |
+----------------------------------------------+

我根据找到的信息here尝试了一些不同的陈述,但它们无效:

is_archived

1 个答案:

答案 0 :(得分:1)

在第一个查询中,看起来问题是Junction表中的ID列的名称(“tblAid”和“tblB.id”),并且您使用的是双引号而不是单引号。这应该有效:

UPDATE JunctionTable 
SET is_archived = 1 
    WHERE tblA_id = 
        (SELECT id FROM TableA WHERE prefix = 'CLA' AND number = 754) 
    AND tblB_id = 
        (SELECT id FROM TableB WHERE prefix = 'RED' AND number = 221)