Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.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/4/webpack/2.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 在where子句中使用两个表更新Oracle中的表_Mysql_Oracle - Fatal编程技术网

Mysql 在where子句中使用两个表更新Oracle中的表

Mysql 在where子句中使用两个表更新Oracle中的表,mysql,oracle,Mysql,Oracle,我有下面的查询,它在MySQL中工作,我需要帮助和提示来为Oracle11g重写它。(我是PL/SQL的新手。) 试试这样的 UPDATE ( SELECT n.col1 AS n_col1, n.col2 AS n_col2, t.col1 AS t_col1, t.col2 AS t_col2 FROM table1 n JOIN tabble2 t ON n.col3=t.col3 ) a SET a.n_col1 = a.t_col1,

我有下面的查询,它在MySQL中工作,我需要帮助和提示来为Oracle11g重写它。(我是PL/SQL的新手。)


试试这样的

UPDATE 
  (
      SELECT n.col1 AS n_col1, n.col2 AS n_col2, t.col1 AS t_col1, t.col2 AS t_col2 
      FROM table1 n 
      JOIN tabble2 t ON n.col3=t.col3
  ) a 
SET a.n_col1 = a.t_col1, 
    a.n_col2 = a.t_col2

试试这样的

UPDATE 
  (
      SELECT n.col1 AS n_col1, n.col2 AS n_col2, t.col1 AS t_col1, t.col2 AS t_col2 
      FROM table1 n 
      JOIN tabble2 t ON n.col3=t.col3
  ) a 
SET a.n_col1 = a.t_col1, 
    a.n_col2 = a.t_col2

您只更新语句中的一个表,TABLE1@Ollie,你是对的,我本来想为另一个查询写问题,但我想出来了..你只更新了你语句中的一个表,TABLE1@Ollie,你是对的,我本来打算为另一个查询写这个问题,但是我想出来了。。我不知道
在哪里存在(选择“x”
…part,这只是为了过滤掉
t.col3=n.col3
所在的行吗?这是为了将更新的行限制为仅更新到t.col3=n.col3所在的行。我没有得到
所在的行(选择“x”
…part,是否只是为了过滤掉
t.col3=n.col3
的行?这是为了将更新的行限制为仅更新到t.col3=n.col3的行。
UPDATE table1 n
   SET (n.col1, n.col2) = (SELECT t.col1, t.col2
                             FROM table2 t
                            WHERE t.col3 = n.col3)
 WHERE EXISTS (SELECT 'x'
                 FROM table2 t
                WHERE t.col3 = n.col3);