[英]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.