mysql从另一个表更新表值

6rqinv9w  于 2021-06-15  发布在  Mysql
关注(0)|答案(2)|浏览(306)

我有两张table finance_mpc_budget 以及 finance_mpc_issues . 它们的连接条件如下-

finance_mpc_budget.mpc_budget_id = finance_mpc_issues.ref_no

所以,我需要更新 finance_mpc_issues.ref_no 使用

finance_mpc_budget.mpc_budget_id where finance_mpc_budget.mpc_budget_id > 55

为此,我使用了以下查询

UPDATE finance_mpc_issues 
JOIN (
      SELECT mpc_budget_id FROM finance_mpc_budget
      WHERE finance_mpc_budget.mpc_budget_id > 55 
      ORDER BY mpc_budget_id) a 
ON a.mpc_budget_id = finance_mpc_issues.ref_no 
SET finance_mpc_issues.ref_no = a.mpc_budget_id

但它生成了空的结果集。可能出了什么问题。有人能帮我吗?

财政部预算表

+---------------+----------+--------+
| mpc_budget_id | category | amount |
+---------------+----------+--------+
|             56| A        |  22000 |
|             57| B        |  25000 |
|             58| C        |  45000 |
|             59| D        |  16000 |
+---------------+----------+--------+

财政政策委员会议题表

+-----------+--------+--------+
| issues_id | ref_no | amount |
+-----------+--------+--------+
|        10 |        |  22000 |
|        11 |        |  25000 |
|        12 |        |  45000 |
|        13 |        |  16000 |
+-----------+--------+--------+

期望输出

+-----------+--------+--------+
| issues_id | ref_no | amount |
+-----------+--------+--------+
|        10 |      56|  22000 |
|        11 |      57|  25000 |
|        12 |      58|  45000 |
|        13 |      59|  16000 |
+-----------+--------+--------+
wswtfjt7

wswtfjt71#

你可以在下面试试-

update finance_mpc_issues 
join finance_mpc_budget a on a.mpc_budget_id = finance_mpc_issues.ref_no
set  finance_mpc_issues.ref_no=a.mpc_budget_id
where a.mpc_budget_id >55
tcbh2hod

tcbh2hod2#

你不能 join 使用 ref_no 因为它是空的。因此你的 finance_mpc_issues 表未更新。
根据你的表格和数据,我想 amount 列具有相同的值。因此使用 amount 列您可以有您想要的输出。

Update finance_mpc_issues fi
set fi.ref_no = 
  (select fb.mpc_budget_id 
     from finance_mpc_budget fb 
     WHERE fb.amount = fi.amount
  );

小提琴连杆

相关问题