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

标签 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:有没有办法在不加入的情况下做到这一点?

最佳答案

通用语法 -

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

这应该有效。

关于mysql - 使用 2 个表中的列进行更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46043581/

相关文章:

mysql - MySQL存储过程语法错误

SQL (MySQL) : Match first letter of any word in a string?

sql - 在保留原始主键且无需手动更新的情况下交换 MS SQLServer 中的两行

php - 使用php更新一次sql表字段

php - 社交网络墙发布逻辑不起作用

php - 嵌套多级类别的更动态的方式

python - 无法在pycharm中安装mysql-connector-python

mysql - 将数据从一个表插入到另一个表但不需要主 ID

MySQL - 如何使用分页从两个表中获取所有记录?

amazon-web-services - 如何更新 DynamoDB 中的列名称?