注册

标准SQL关联多张表不能查询出数据

niceD 2024/11/11 264 1

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:0x7000C
【操作系统】:windows
【CPU】:
【问题描述】*:执行关联查询的时候,这个sql能查询出来

SELECT
ep.STATE AS "state",
ep.change_type AS "changeType",
ep.NAME AS "name",
sa.del_flag AS "delFlag",
sa.org_id AS "orgId",
sa.org_name AS "orgName",
sa.group_id AS "groupId",
sa.ID AS "id",
sa.create_time AS "createTime",
ppt.del_flag as "ppTDelFlag",
ep.change_type as "epChagenType"
FROM
ehr_salary_archive sa
LEFT JOIN ehr_org_person ep ON sa.ID = ep.
ID LEFT JOIN ehr_org_department dp ON ep.dept_id = dp.
ID LEFT JOIN ehr_org_person_part_time ppt ON sa.ID = ppt.target_org_person_id
WHERE
ep.del_flag = 1
AND sa.org_id = '5271095829764646530'
AND ep.STATE IN ( 1,2,4 )
AND ( ( ep.change_type != 'partTimeJob' ) OR ( ep.change_type IS NULL ) )
AND ( ( ppt.del_flag IS NULL ) )
ORDER BY
ep.NUMBER ASC,
ep.ID ASC

而这条sql查询不到数据
SELECT
ep.STATE AS "state",
ep.change_type AS "changeType",
ep.NAME AS "name",
sa.del_flag AS "delFlag",
sa.org_id AS "orgId",
sa.org_name AS "orgName",
sa.group_id AS "groupId",
sa.ID AS "id",
sa.create_time AS "createTime",
ppt.del_flag as "ppTDelFlag",
ep.change_type as "epChagenType"
FROM
ehr_salary_archive sa
LEFT JOIN ehr_org_person ep ON sa.ID = ep.
ID LEFT JOIN ehr_org_department dp ON ep.dept_id = dp.
ID LEFT JOIN ehr_org_person_part_time ppt ON sa.ID = ppt.target_org_person_id
WHERE
ep.del_flag = 1
AND sa.org_id = '5271095829764646530'
AND ep.STATE IN ( 1,2,4 )
AND ( ( ep.change_type != 'partTimeJob' ) OR ( ep.change_type IS NULL ) )
AND ( ( ppt.del_flag = 1 ) OR ( ppt.del_flag IS NULL ) )
ORDER BY
ep.NUMBER ASC,
ep.ID ASC

两条sql 的差异只有对 ppt这张表的筛选条件不一样

回答 0
暂无回答
扫一扫
联系客服