Mysql 在where子句中使用两个表更新Oracle中的表
我有下面的查询,它在MySQL中工作,我需要帮助和提示来为Oracle11g重写它。(我是PL/SQL的新手。)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,
试试这样的
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);