繁体   English   中英

根据另一个表中的值更新一个表中的MySQL行

[英]Update a MySQL row in one table depending upon a value in another table

START TRANSACTION;
SELECT @v:=Clientno FROM A WHERE Case_No = '2000'; 
IF @V = ' ' THEN 
   UPDATE B SET Status = 'Ongoing' WHERE C_No = '3000';
COMMIT;

在上面的MySQL TRANSACTION语句中,我想从table A获取@v ,如果@v EXISTS (即,如果@v EXISTS / Case_No = '2000'有一个值/行),那么我想更新table B的一行从'Status''Ongoing'

上面的语法没有用。

做上述TRANSACTION的正确MySQL语法是什么?

表结构如下:

表A的结构:A(Case_No,Clientno)

表B的结构:B(C_No,Status)

您的问题不清楚。

猜测tableB.C_no是tableA.ClientNo的引用

update
    tableB
set Status = 'Ongoing'
where C_No = ( select Clientno from tableA where Case_No = 2000 )

如果不是参考表,请尝试

update
    tableB
set Status = 'Ongoing'
where C_No = 3000
and ( select count(Clientno) from tableA where Case_No = 2000) > 0

注意:您的问题还不够清楚。 我根据对问题的理解来回答这个问题

您也可以将update与内部联接一起使用。 例如:

update b inner join a on A.Case_No = B.C_No set status='on_going' where A.Case_No = 2000 and B.C_No = 3000;

该查询将仅选择A中在B具有条目的那些行。 因此,您不必担心A是否具有该行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM