项目场景项目场景示例器械定期审核器械故障等情况不再通过纸质流转而是电子签核存入数据库永久保存通过邮件提醒签核状态。问题描述显示签核表单当前的步骤与下一阶段是什么以及这两个阶段的签核人。使用 where 筛选导致数据不显示。解决示例SELECTM.ID,M.FORM_CODE,M.ADD_USERASapplicant,M.APPLY_DEPTASapplicant_dept,M.RESPONSORASresponsor,NVL(R1.ROUTE_NAME,TO_CHAR(M.CURRENT_ROUT))||NVL2(E1.USER_NAME,(||E1.USER_NAME||),)ASCURRENT_ROUT,NVL(R2.ROUTE_NAME,TO_CHAR(M.NEXT_ROUT))||NVL2(E2.USER_NAME,(||E2.USER_NAME||),)ASNEXT_ROUT,M.ADD_DATEFROMMJOINSONM.FORM_CODES.ECR_NOLEFTJOINSIGN_PERSONS E1onM.FORM_CODEE1.ECR_NOANDM.CURRENT_ROUTE1.ROUTE_IDANDE1.ACTIVE_FLAGYLEFTJOINSIGN_PERSONS E2onM.FORM_CODEE2.ECR_NOANDM.NEXT_ROUTE2.ROUTE_IDANDE2.ACTIVE_FLAGYWHERES.USER_NO:USER_NOANDM.CURRENT_ROUTS.ROUTE_IDANDM.CURRENT_ROUTNOTIN(0,-99)ANDS.ACTIVE_FLAGYORDERBYM.ADD_DATEDESC原因分析把连接条件写成FROM M, E1 WHERE E1.ECR_NO M.FORM_CODE时这在 SQL 底层被称为隐式内连接。它等同于JOIN或INNER JOIN。如果主表 M 有一张新表单 A001但只是创建并未发起签核内连接在比对E1.ECR_NO M.FORM_CODE时发现右表对不上就会把主表 A001 的整条数据从结果集中抹去。结果就是只要该表单没有满足 E1 的签核条件用户在界面上连这张表单的影子都看不见。