我有3张桌子
1)main_table
2)Flag_table
3)emp_flag详细信息

main_table结构

emp_no hod_no emp_name flgType
E51397 E44417 Asha V
E42342 E44417谢赫·法兹·艾哈迈德
E06636 E44417 Balu K U

在上表中,我将flgtype列保留为空白以供以后更新

现在我有Flag_table结构如下

FlagId FlagCategory FlagType
1 BM BRML12B
2 BM BRMM12B
3 BM BRMRMB
4 BM BRMCMB
5 BM BRMZM
6 VH BRML12V
7 VH BRMM12V
8 VH BRMRMV
9 VH BRMCMV


emp_flagdetails结构如下

编码标志
E44417 BRML12B
E42342 BRMRMB
E06636 BRMZM
E51397 BRML12B

这是我的表结构,现在我的查询是我要用Flag_table的flagcategory列更新main_table的flgtype列,这样,如果emp_flagdetails表中存在来自main_table的empno,那么我们将检查emp_flagdetails的flag列是否匹配雇员,然后我们获得该标志列值,如果在flag_table中存在该值,我们将在flag_table中找到该值,我们将使用flagcategory列值更新main_table flgtype列...。因此输出如下

emp_no hod_no emp_name flgType
E51397 E44417 Asha V BM
E42342 E44417 Shaikh Faiz Ahmed BM
E06636 E44417 Balu K U BM


请帮我写查询

最佳答案

查询:

SQLFIDDLEExample

UPDATE m
SET m.flgType = f.FlagCategory
FROM main_table m
 JOIN emp_flagdetails fd
  ON fd.ecode = m.emp_no
 JOIN flag_table f
  ON f.FlagType = fd.flag;

10-05 19:48