仅当与 table2 中的 column3 匹配时才更新 table1 中的 column1

Posted

技术标签:

【中文标题】仅当与 table2 中的 column3 匹配时才更新 table1 中的 column1【英文标题】:Updating column1 in table1 only if matched column3 in table2 【发布时间】:2014-02-12 06:47:41 【问题描述】:

只有当 table1 中的 column2 与 table2 中的 column3 匹配时,我才想更新 table1 中的 column1。

我正在尝试使用此查询,但我收到一条错误消息,提示我缺少等号。

谁能帮忙?

update schema1.table1 
set schema1.table1.column1
where schema1.table1.column2 = table2.column1

【问题讨论】:

【参考方案1】:

你的错误说明了一切。您没有为该列分配任何值。尝试使用相等的= 符号设置值

你可以试试这个:

update schema1.table1 
set schema1.table1.column1 = //The value which you want to store
where schema1.table1.column2 = table2.column1

【讨论】:

【参考方案2】:

试试这个查询:

update schema1.table1 t1 
set t1.column1 = (select t2.columnX from table2 t2
                  where t1.column2 = t2.column1)
where t1.column2 in (select column1 from table2)

【讨论】:

【参考方案3】:

如错误消息中所示,您错过了 = 并且未在查询中为 schema1.table1.column1 分配任何值。

试试这样:

UPDATE schema1.table1 
SET    schema1.table1.column1 = <your_value>
WHERE  schema1.table1.column2 = table2.column1;

【讨论】:

以上是关于仅当与 table2 中的 column3 匹配时才更新 table1 中的 column1的主要内容,如果未能解决你的问题,请参考以下文章

仅当与当前行不同时才从先前行中获取值[MySQL] [关闭]

仅当 UID 与 Firebase Firestore 中的集合名称匹配时,如何读取集合?

sql 多对多查询结果仅当仅匹配且完全匹配数组中的所有项目时

当与其他节点匹配时,Neo4J返回节点两次

SQL两表模糊匹配查询

仅当记录匹配时才从另一个表中更新记录