Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 对两个关系表执行更新_Mysql_Sql_Sql Server_Join_Sql Update - Fatal编程技术网

Mysql 对两个关系表执行更新

Mysql 对两个关系表执行更新,mysql,sql,sql-server,join,sql-update,Mysql,Sql,Sql Server,Join,Sql Update,我有一个自动生成ID列的地址表,该ID在客户表中引用,我无法使用下面的代码执行更新操作 UPDATE mydb.adrs SET adrs_col1 = _adrs_col1, adrs_col2 = _adrs_col2 FROM mydb.adrs AS ad JOIN mydb.customer AS cu ON ad.adrs_id = cu.adrs_

我有一个自动生成ID列的地址表,该ID在客户表中引用,我无法使用下面的代码执行更新操作

 UPDATE mydb.adrs
            SET adrs_col1 = _adrs_col1, 
                adrs_col2 = _adrs_col2
            FROM mydb.adrs AS ad
            JOIN mydb.customer AS cu  
            ON ad.adrs_id = cu.adrs_adrs_id
            WHERE customer_id = _customer_id;
_customer\u id是传递给客户的id _adrs_col1是传入的地址
_adrs_col2也是传入的地址(这是第二个地址)

在MySQL中,对于传入的客户ID,您应该使用此语法进行update with join,因为该ID已经存在,因此可以证明更新操作是正确的

UPDATE mydb.adrs ad 
JOIN mydb.customer AS cu  
ON ad.adrs_id = cu.adrs_adrs_id
SET adrs_col1 = _adrs_col1, 
    adrs_col2 = _adrs_col2
WHERE customer_id = _customer_id;

对于此类操作,您需要使用一个事务和两个不同的update语句。小心死锁!这将更新客户表?添加一个清晰的数据样本和导出的结果。。我不在您的数据库中,我不知道您要更新哪个表。。antway查询更新了ADR,但在mysql中,您还可以更新两个TableUmm。。。你好,我不是原来的海报:)@Hogan。对不起。无论如何此查询只更新update mydb.adrs中提到的表,因此如果需要另一个表,可以更改update子句中的引用。。如果您需要更新多个表,您可以添加表名逗号分隔..希望我的评论是明确和有用的。对不起again@scaisEdge我已经试过了,但我想用where子句来执行,因为我想对传入的客户id执行更新