我有3张 table 1)主表 2)标志表 3)emp_flagdetails
主表结构
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
请帮我写查询
最佳答案
查询:
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;
关于sql - 更新主表的复杂sql查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18487926/