使用2个表中的列进行更新

时间:2017-09-04 20:19:44

标签: mysql sql sql-update inner-join

我正在尝试使用2个表设置更新,但我不知道如何加入第二个表。

我现在拥有的:

UPDATE Exp SET AMOUNT = 15, inner join Sal WHERE (DN = 120 AND NOM = 2122) 
OR (DN = 120 AND EAN = 2000000221412);

Table Exp:
  DN  |  NOM  |  AMOUNT  |
 .........................
  120 |  2122 |    0     |


Table Sal:
 NOM  |       EAN        |
..........................
 2122 |   2000000221412  |      

感谢。

编辑1:没有加入,有没有办法做到?

2 个答案:

答案 0 :(得分:1)

通用语法 -

UPDATE A
SET foo = B.bar
FROM TableA A
JOIN TableB B
  ON A.col1 = B.colx
WHERE ...

所以你可以试试这个 -

UPDATE Exp SET AMOUNT = 15 
FROM Exp e 
INNER JOIN Sal s 
ON
  e.NOM = s.NOM
WHERE 
  e.DN=120 and s.EAN = 2000000221412; --some conditions. Edit according to your need

这应该有用。

答案 1 :(得分:0)

正确的语法将join作为update的一部分。您还需要join密钥,其类似于nom

UPDATE Exp inner join
       Sal
       ON exp.nom = sal.nom
    SET exp.AMOUNT = 15
    WHERE exp.DN = 120 AND (exp.NOM = 2122 OR sal.EAN = 2000000221412);