SQL多表联合查询实现插入/更新/删除

时间:2021-09-29 00:26:38

具体描述:有两个表相关联,比如A是主表,B是A的关联从表。A和B各自的主键都是自动增长的。

所以插入顺序:先插入A,再插入B;

       更新顺序:随意;

       删除顺序:先删除B,再删除A;


1、删除B时的联合查询语句如下

delete B from B,A where RTRIM(FailureMode)=RTRIM(@FailureMode) and RTRIM(ShiftCode)=RTRIM(@ShiftCode)

其中FailureMode是B的字段,@FailureMode是值

       ShiftCode是A的字段,@ShiftCode是值

因为字段不重名,所以不用特变限定是哪个表的


2、插入B时的联合查询语句如下

insert into B(EfficiencyID,FailureMode,Reject,RejectYield) (selectEfficiencyID,RTRIM(@FailureMode),@Reject,@RejectYield from A where RTRIM(ShiftCode)=RTRIM(@ShiftCode) and RTRIM(SiteCode)=RTRIM(@SiteCode))

其中Reject,RejectYield,FailureMode是B的字段

       ShiftCode是A的字段

       A和B 是通过EfficiencyID关联的,注意语句写法


3、更新的联合查询语句如下

update B set Reject=@Reject,RejectYield=@RejectYield from B,A where RTRIM(FailureMode)=RTRIM(@FailureMode) and RTRIM(ShiftCode)=RTRIM(@ShiftCode)

其中Reject,RejectYield,FailureMode是B的字段

       ShiftCode是A的字段

      其余同上