MySQL从另一个表更新表值
我有两个表,分别是MySQL从另一个表更新表值,mysql,Mysql,我有两个表,分别是财务(mpc)预算和财务(mpc)问题。它们是连接的,具有以下条件- finance_mpc_budget.mpc_budget_id = finance_mpc_issues.ref_no 因此,我需要使用 finance_mpc_budget.mpc_budget_id where finance_mpc_budget.mpc_budget_id > 55 为此,我使用了以下查询 UPDATE finance_mpc_issues JOIN ( SE
财务(mpc)预算
和财务(mpc)问题
。它们是连接的,具有以下条件-
finance_mpc_budget.mpc_budget_id = 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
但它生成了空的结果集。可能出了什么问题。有人能帮我吗
财务预算表
财务和货币政策委员会问题表
期望输出
你可以在下面试试-
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
您不能使用
ref\u no
加入,因为它是空的。因此,您的finance\u mpc\u issues
表不会更新
基于您的表和数据,我假设金额
列包含相同的值。因此,使用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
);
更新
finance\u mpc\u issues.ref\u no
byfinance\u mpc\u budget.mpc\u budget\u id
有什么意义?如果您通过此字段连接这两个表,这意味着它们已经相同(否则您将无法连接它们)?根据更新的问题:无法连接这两个表(两个表上都没有定义可靠的联接键)。您可以联接我的金额(ugghhh),但这还不够可靠。因此,简单的答案是为了达到预期的结果,您必须首先更加深思熟虑地设计表架构以及关系。您试图做的是将联接键改装到finance\u mpc\u issues
表中。这不是它的工作方式。您不能使用ref\u no
进行联接,因为为空。amount
列似乎包含相同的值。您可以使用amount
进行联接,以获得所需的输出。两个表的amount
是否每行都相同?但也得到了空结果set@MCITTrends为什么您希望更新操作有一个结果集?@Erfan.财务参考号_mpc\U问题表仍然为空。若要加入这些表,必须将财务mpc\U预算表的mpc\U预算id插入财务mpc\U问题表的参考号
+-----------+--------+--------+
| issues_id | ref_no | amount |
+-----------+--------+--------+
| 10 | 56| 22000 |
| 11 | 57| 25000 |
| 12 | 58| 45000 |
| 13 | 59| 16000 |
+-----------+--------+--------+
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
Update finance_mpc_issues fi
set fi.ref_no =
(select fb.mpc_budget_id
from finance_mpc_budget fb
WHERE fb.amount = fi.amount
);