日期:2014-05-18  浏览次数:20629 次

求两表批量更新sql语句
完成更新a表和b表,最好用一个sql语句完成,不可以的话就更新a表一个语句,更新b表一个语句。

基础是a表和b表的Category都一样为x

一、根据b表更新a表,要求:
1、若b表中存在与a表中aID相同的bID且aCheck是1就将aValidate更新为1,aCheck     不是1就将aValidate更新为3。

2、若b表中不存在与a表中aID相同的bID且aCheck是1就将aValidate更新为2,aCheck不是1就将aValidate更新为4。

二、根据a表更新b表,要求:

1、若a表中存在与b表中bID相同的aID且aCheck是1就将bValidate更新为1,aCheck     不是1就将bValidate更新为3。

2、若a表中不存在与b表中bID相同的aID且aCheck是1就将bValidate更新为2。

示例数据:
更新前
a:                                                                                   b:
 
aID       aCheck           Category     aValidate               bID       Validate       Category
1               1                       x                   null                     1               null             x
2               1                       x                   null                     3               null             x
6               2                       x                   null                     7               null             x
7               3                       x                   null                     8               null             x
8               3                       x                   null                     9               null             x
9               1                       y                   null                     10             null             y


更新后:
a:

aID       aCheck         aValidate                                                 Category