我有这张桌子:
table_a
+----+--------+
| id | status |
+----+--------+
| 10 | ERROR |
+----+--------+
我也有这张桌子:
table_b
+------------+----------------+
| trading_id | trading_status |
+------------+----------------+
| 10 | CLOSED |
+------------+----------------+
如何基于UPDATE
来table_a.status
table_b.trading_status
,以便结果如下:
table_a
+----+--------+
| id | status |
+----+--------+
| 10 | CLOSED |
+----+--------+
答案 0 :(得分:2)
尝试一下:
UPDATE table_a
SET status = COALESCE((SELECT trading_status
FROM table_b
WHERE trading_id = table_a.id), table_a.status)
以上查询假设table_b
中最多有一条记录与table_a
的每条记录匹配。
答案 1 :(得分:2)
您可以使用update-join语法:
UPDATE table_a
JOIN table_b ON table_a.id = table_b.id
SET table_a.status = table_b.trading_status