sql 的join
SELECT P.PROC_ID AS HYPO_PROC_ID, R.PROP_VAL AS PARE_PROC_ID, I.PROP_VAL AS HYPO_SEQ_ID
FROM dbo.PROC_INST_ALL AS P INNER JOIN
dbo.DATA_PROP_INST AS R ON P.PROC_ID = R.PROC_ID INNER JOIN
dbo.DATA_PROP_INST AS I ON P.PROC_ID = I.PROC_ID
WHERE (R.PROP_NAME = 'PareProcID') AND (I.PROP_NAME = 'HypoSeqID')
在两张表中查数据,返回的结果包含的字段有:HYPO_PROC_ID ,PARE_PROC_ID,HYPO_SEQ_ID
主要的功能是:查找出每个流程实例中的父子流程ID,其中流程ID保存在PROC_INST_ALL表,父子流程的ID 放在DATA_PROP_INST。DATA_PROP_INST表中的记录:每一条记录只保存父流程或者子流程的ID,不可能这条记录同是父子流程,既是父子流程的ID不能同时有值。
首先从PROC_INST_ALL 流程实例表中 获取到proc_id,然后根据这个id去 join 另外一个表:DATA_PROP_INST,查出parentid,条件为R.PROP_NAME = 'PareProcID',然后在join一次,查出childid,条件为PROP_NAME = 'HypoSeqID'。
总结:sql语句是和业务有关的,写的sql语句能否准确表达出业务的需求很重要。
需要的能力:根据业务写出sql,同时sql也要准确表达业务需求
浙公网安备 33010602011771号