34,587
社区成员
发帖
与我相关
我的任务
分享
select *
from F_Company_EU_Info a left join F_Temp_Project h
on a.TP_ID=h.TP_ID left join Sys_Mapping c
on a.Partner_Name=c.Mapping_ID left join vw_MapToArea e
on a.Area_ID=e.Area_ID left join F_Company_EU_Contact b
on a.Company_ID=b.Company_ID
所以先看下这段连接的执行计划是否合理,索引是否合理。
其次被多次引用的User_Info如果user_id在该表中是唯一的话可以通过自查询的方式直接在select列中写。
同样SYSTEM_PARAMETERS表中如果PP_VALUE( PP_NAME) ,PP_FIELD,PP_TABLE这三列是唯一值话也可以通过子查询的方式写在select列中。
如下。isnull(e.Status,'<空>') as Status,
这句改成
isnull((select PP_VALUE from SYSTEM_PARAMETERS where PP_TABLE='F_Company_EU_Contact' and PP_FIELD='Status' and b.PP_VALUE=F_Company_EU_Contact.Status)'<空>') as Status,
F_Company_EU_Contact a
LEFT JOIN ( SELECT PP_VALUE ,
PP_NAME
FROM SYSTEM_PARAMETERS
WHERE PP_TABLE = 'F_Company_EU_Contact'
AND PP_FIELD = 'Status'
) b ON a.Status = b.PP_VALUE
LEFT JOIN ( SELECT PP_VALUE ,
PP_NAME
FROM SYSTEM_PARAMETERS
WHERE PP_TABLE = 'F_Company_EU_Contact'
AND PP_FIELD = 'IS_MAINCONTACT'
) c ON a.IS_MAINCONTACT = c.PP_VALUE
LEFT JOIN ( SELECT PP_VALUE ,
PP_NAME
FROM SYSTEM_PARAMETERS
WHERE PP_TABLE = 'F_Company_EU_Contact'
AND PP_FIELD = 'Job_Role'
) d ON a.Job_Role = d.PP_VALUE