【发布时间】:2013-12-13 12:09:41
【问题描述】:
我有两张桌子:
Table A with system values
------------------------
id | val_1 | val_2 |
------------------------
1 | 11 | 22 |
------------------------
Table B with user values
-----------------------
uid | set | val_3 |
-----------------------
21 | 1 | 11 |
-----------------------
68 | 2 | 22 |
-----------------------
83 | 1 | 11 |
-----------------------
我想用表 A 的 val_1 和 val_2 的值来更新表 B 中的 val_3,根据在表 B 中设置。
所以如果我更改:表 A val_1 => 333,表 A val_2 => 666,更新查询将表 B 更改为:
uid | set | val 3 |
-----------------------
21 | 1 | 333 |
-----------------------
68 | 2 | 666 |
-----------------------
83 | 1 | 333 |
-----------------------
这可以在一个查询中实现吗? 现在我做:
$result=$mysql->query('SELECT val1,val2 from TABLE A WHERE id=1');
UPDATE TABLE B set val3=$result[0] WHERE set=1
UPDATE TABLE B set val3=$result[1] WHERE set=2
也许我可以做一个CASE WHEN,但如果没有表 A 的相应行值,我不知道该怎么做。
【问题讨论】:
标签: mysql sql if-statement sql-update case