如何根据另一个表中的列乘以列中的所有值?

时间:2014-03-29 02:42:55

标签: mysql sql

我无法找到答案,所以如果之前已经回答过,我会道歉。

说我有两张桌子:

Table 1
+--------+----+
| Number | ID |
+--------+----+
|      1 | AA |
|      5 | BB |
|     10 | CC |
|      2 | DD |
|     20 | EE |
+--------+----+

Table 2:
+----+--------+
| ID |  Name  |
+----+--------+
| AA | Cat    |
| BB | Dog    |
| CC | Bird   |
| DD | Fish   |
| EE | Monkey |
+----+--------+

我想通过一个值对Number列进行多次处理(例如将其增加50%),但我只想修改Name ='Dog'的那些。

我为我的代码尝试了类似的东西:

UPDATE Table1
SET number = number*1.50
FROM Table1 JOIN Table2 USING (ID)
WHERE name = 'Dog';

但它不起作用。

非常感谢任何形式的帮助。

修改

似乎我找到了答案:

UPDATE Table1
SET number = number*1.50
WHERE id IN (SELECT id FROM Table2 WHERE name = 'Dog');

谢谢:)

1 个答案:

答案 0 :(得分:0)

也许是这样的?

UPDATE Table1 t1 JOIN Table2 t2 ON t1.ID=t2.ID
SET t1.number = t1.number*1.50
WHERE t2.name = 'Dog';