sql - 根据条件用另一个表的列更新列值

标签 sql mysql sql-server oracle

我有两张 table ...

table1 (id, item, price) 值:

id | item | price
-------------
10 | book | 20  
20 | copy | 30   
30 | pen  | 10

....table2 (id, item, price) 值:

id | item | price
-------------
10 | book | 20
20 | book | 30

现在我想:

update table1 
   set table1.Price = table2.price 
 where table1.id = table2.id
   and table1.item = table2.item.

我该怎么做?

最佳答案

应该这样做:

UPDATE table1 
   SET table1.Price = table2.price 
   FROM table1  INNER JOIN  table2 ON table1.id = table2.id

你也可以试试这个:

UPDATE table1 
   SET price=(SELECT price FROM table2 WHERE table1.id=table2.id);

关于sql - 根据条件用另一个表的列更新列值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1746125/

相关文章:

MySQL存储可交叉引用的数组

PHP 创建 RSS-feed,而不是更新

mysql - 如何在更新后立即获取时间戳值?

跨多个数据库的 SQLite View 。这个可以吗?有没有更好的办法?

session 中的 PHP 登录系统问题!

php - SQL 中存储标签、类别和 int[] 的最佳方式

sql-server - 什么更快 : SUM over NULL or over 0?

javascript - node.js mssql javascript方法第二次调用从数据库打印未定义的数据

php - 我可以在 SQL 查询中使用 htmlentities() 吗?

c# - 带正则表达式的参数化 SQL、ORACLE 与 SQL Server