给定三个表,其中一个表作为包含两个外键列的联结表,我尝试进行插入,以便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
答案 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)