基于其他列的MySQL更新列
我有这张桌子:基于其他列的MySQL更新列,mysql,sql,sql-update,Mysql,Sql,Sql Update,我有这张桌子: table_a +----+--------+ | id | status | +----+--------+ | 10 | ERROR | +----+--------+ table_b +------------+----------------+ | trading_id | trading_status | +------------+----------------+ | 10 | CLOSED | +------------+---
table_a
+----+--------+
| id | status |
+----+--------+
| 10 | ERROR |
+----+--------+
table_b
+------------+----------------+
| trading_id | trading_status |
+------------+----------------+
| 10 | CLOSED |
+------------+----------------+
我还有一张桌子:
table_a
+----+--------+
| id | status |
+----+--------+
| 10 | ERROR |
+----+--------+
table_b
+------------+----------------+
| trading_id | trading_status |
+------------+----------------+
| 10 | CLOSED |
+------------+----------------+
如何基于表b.交易状态
更新表a.状态,使结果如下:
table_a
+----+--------+
| id | status |
+----+--------+
| 10 | CLOSED |
+----+--------+
试试这个:
UPDATE table_a
SET status = COALESCE((SELECT trading_status
FROM table_b
WHERE trading_id = table_a.id), table_a.status)
上述查询假设表b
中最多有一条记录与表a
中的每条记录相匹配
您可以使用更新连接语法:
UPDATE table_a
JOIN table_b ON table_a.id = table_b.id
SET table_a.status = table_b.trading_status