main_table结构
emp_no hod_no emp_name flgType E51397 E44417 Asha V E42342 E44417 Shaikh Faiz Ahmed 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结构是一个跟随
ecode flag E44417 BRML12B E42342 BRMRMB E06636 BRMZM E51397 BRML12B
这是我的表结构,现在我的查询是我想用flag_table的flagcategory列更新main_table的flgtype coloumn,这样如果emp_flagdetails表中存在来自main_table的empno,那么我们将检查emp_flagdetails的标志列以进行匹配employee然后我们得到这个标志列值,我们会在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
请帮我写一下查询
答案 0 :(得分:2)
查询:
<强> 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;
答案 1 :(得分:1)
update main_table m, (select a.emp_no, b.flagcategory from emp_flagdetails a, flag_table b
where a.flag = b.flagtype) s set m.flgtype = s.flagcategory where m.emp_no = s.emp_no
答案 2 :(得分:0)
update main_table
set flagtype= (select a.flagcategory
from ( select m.empno, f.flagcategory
from main_table m,emp_flagdetails e , flag_table f
where m.empno=e.ecode
and e.eflag=f.flagtype) a
where main_table.empno=a.empno) ;