Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/78.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_Sqlanywhere - Fatal编程技术网

Mysql 基于两个表中一列的两个匹配值更新一列

Mysql 基于两个表中一列的两个匹配值更新一列,mysql,sql,sql-server,sqlanywhere,Mysql,Sql,Sql Server,Sqlanywhere,我有两个问题,如果有人能帮助我,这将是一个伟大的学习 我有两个表,我的要求是更新 表1值仅适用于列B所针对的行 值与表2的B列相同 我正在寻找一个优化的SQL查询 UPDATE DBA.COM, DBA.MEN SET DBA.COM.ND_MAN='' WHERE DBA.MEN 在此之后,我无法在where条件中选择列名 我在两个表的B列中发现的问题是 从UI中标识的唯一(GUID)。所以,当我复制单元格值时 在“SQLAnywhere”交互式SQL编辑器中,它显示列 值复制如下: 0x9

我有两个问题,如果有人能帮助我,这将是一个伟大的学习

  • 我有两个表,我的要求是更新
    表1
    值仅适用于列
    B
    所针对的行 值与
    表2的
    B列
    相同

    我正在寻找一个优化的SQL查询

    UPDATE DBA.COM, DBA.MEN
    SET DBA.COM.ND_MAN=''
    WHERE DBA.MEN
    
    在此之后,我无法在where条件中选择列名

  • 我在两个表的
    B列中发现的问题是
    从UI中标识的唯一(GUID)。所以,当我复制单元格值时
    在“SQLAnywhere”交互式SQL编辑器中,它显示列
    值复制如下:

    0x99e2f2a23f9946acb0ceb374a627b142
    
    而不是作为
    99e2f2a23f9946acb0ceb374a627b142

    但是,当我复制表的列值时,它正在启动 使用
    0x
    。我想这不会带来任何问题吧


  • 或者如何在您将为问题1创建的上述查询中更正它?

    您需要根据需要加入并更新某些内容

    update table1 t1
    join table2 t2 on t1.B = t2.B
    set t1.A = 'some value'
    

    你需要加入并更新一些东西

    update table1 t1
    join table2 t2 on t1.B = t2.B
    set t1.A = 'some value'
    

    回答你的第一个问题

    UPDATE t1, t2 SET t1.name = new_value WHERE t1.id = t2.id;
    
    注:

    A multiple-table UPDATE is an extension of a single-table statement:
    
    Following the UPDATE keyword, name the tables involved in the operation, separated by
    commas. (You must name all the tables used in the query, even if you aren’t updating all
    of them.)
    
    In the WHERE clause, describe the conditions that determine how to match records in the
    tables.
    
    In the SET clause, assign values to the columns to be updated. These assignments can
    refer to columns from any of the joined tables.
    

    回答你的第一个问题

    UPDATE t1, t2 SET t1.name = new_value WHERE t1.id = t2.id;
    
    注:

    A multiple-table UPDATE is an extension of a single-table statement:
    
    Following the UPDATE keyword, name the tables involved in the operation, separated by
    commas. (You must name all the tables used in the query, even if you aren’t updating all
    of them.)
    
    In the WHERE clause, describe the conditions that determine how to match records in the
    tables.
    
    In the SET clause, assign values to the columns to be updated. These assignments can
    refer to columns from any of the joined tables.
    

    非常感谢,但是,“.”即t1.B没有获取表的列名:(这是SQL Anywhere。请帮助。很抱歉,它没有按照我说的那样工作。因为,我无法首先提供别名,而且它也没有在我的编辑器上获取列。这不是intellisense问题,也不是intellisense问题,因为其他查询可以与intellisense正常工作。您可以将查询添加到您正在尝试的问题中吗?更新了吗?请看,嗯,再试一次没有别名,即直接作为
    JOIN table1.B=table2.B set table1.A='some val'
    非常感谢,但是,“.”即t1.B没有获取表的列名:(这是SQL Anywhere。请帮助。很抱歉,它没有按照我说的那样工作。因为,我无法首先提供别名,而且它也没有在我的编辑器上获取列。这不是intellisense问题,也不是intellisense问题,因为其他查询可以与intellisense正常工作。您可以将查询添加到您正在尝试的问题中吗?更新了吗?请看,嗯,再试一次没有别名,即直接作为
    JOIN table1.B=table2.B set table1.A='some val'
    为什么要更新t2?查询不会更新t2表。更新关键字后看到的表是更新查询中包含的表。只有set子句后指定的表才会更新。有关详细信息,您可以阅读我的注释。Deepak,谢谢,但是,很遗憾,我没有通过放置点来获取列名。即t1。不获取ID。我在任何地方使用SQL。请告知为什么t2要更新?查询不会更新表t2。更新关键字后看到的表是更新查询中包含的表。只有SET子句后指定的表是更新的d、 您可以阅读我的笔记以了解更多信息。Deepak,谢谢,但是,很遗憾,我没有通过放置点来获取列名。即t1。不获取ID。我在任何地方使用SQL。请提供建议