Doris 错误信息提示不准确

Viewed 7

Doris 版本: 2.1.9

问题描述:

dm_dm_sv_is_inhos_pat_info_view 和 dm_dm_cz_ca_pat_info_view 都是视图,单独查询视图能正常查询,并且没有任何错误。

问题:当两个视图连接查询时, 当on条件后边出现两个不在视图中出现的字段时, 会报错,但是报错信息匹配不上。

示例:如下我有一个sql ,两个sql 关联, 其中 on条件(i.aaa_id =p.aaa_id) aaa_id在 两个视图都不存在。但是报错不提示 aaa_id 不存在, 提示的是其他的ID

SELECT 
    i.inhos_time

FROM 
    dm_dm_sv_is_inhos_pat_info_view i
JOIN 
    dm_dm_cz_ca_pat_info_view p ON i.pat_id = p.pat_id  AND i.aaa_id =p.aaa_id
WHERE 
    i.inhos_time IS NOT NULL AND i.outhos_time IS NOT NULL;

错误信息:
errCode = 2, detailMessage = Unknown column 'inhos_regst_id' in 'xxxxxx.a'

inhos_regst_id 这个字段在查询的sql中就不存在。报错匹配不上, 不好排查错误, 这块有什么可快速精准定位的方式吗?

具体的案例sql如下:

-- 建表语句
CREATE TABLE `dw_dwb_sv_is_inhos_pat` (
  `inhos_regst_id` bigint NOT NULL COMMENT "入院登记ID",
  `org_id` bigint NOT NULL COMMENT "机构ID",
  `hos_id` bigint NOT NULL COMMENT "医院ID",
  `pat_id` bigint NULL COMMENT "患者ID",
  `accord_diagnosis_id` bigint NULL COMMENT "符合路径的诊断ID"
) ENGINE=OLAP
UNIQUE KEY(`inhos_regst_id`, `org_id`, `hos_id`)
DISTRIBUTED BY HASH(`inhos_regst_id`, `org_id`, `hos_id`) BUCKETS 3
PROPERTIES (
"replication_num" = "1"
);

CREATE TABLE `dw_dwb_sv_is_inhos_pat_extend` (
  `inhos_regst_id` bigint NOT NULL COMMENT "入院登记ID",
  `org_id` bigint NOT NULL COMMENT "机构ID",
  `hos_id` bigint NOT NULL COMMENT "医院ID",
    `pat_id` bigint NULL COMMENT "患者ID"
) ENGINE=OLAP
UNIQUE KEY(`inhos_regst_id`, `org_id`, `hos_id`)
DISTRIBUTED BY HASH(`inhos_regst_id`, `org_id`, `hos_id`) BUCKETS 3
PROPERTIES (
"replication_num" = "1"
);

CREATE TABLE `dwd_dwd_dict_diagnosis_clinic` (
  `cli_diag_id` bigint NOT NULL COMMENT "临床诊断ID",
  `org_id` bigint NOT NULL COMMENT "机构ID",
  `use_range` varchar(200) NULL COMMENT "使用范围"
  
) ENGINE=OLAP
UNIQUE KEY(`cli_diag_id`, `org_id`)
DISTRIBUTED BY HASH(`cli_diag_id`, `org_id`) BUCKETS 5
PROPERTIES (
"replication_num" = "1"
);

CREATE TABLE `dw_dwb_cz_ca_pat_info` (
  `pat_id` bigint NOT NULL COMMENT "患者ID",
  `org_id` bigint NOT NULL COMMENT "机构ID",
  `pat_name` varchar(400) NULL COMMENT "患者姓名"
 
) ENGINE=OLAP
UNIQUE KEY(`pat_id`, `org_id`)
DISTRIBUTED BY HASH(`pat_id`, `org_id`) BUCKETS 3
PROPERTIES (
"replication_num" = "1"
);





-- 创建视图
CREATE VIEW dm_dm_sv_is_inhos_pat_info_view(
`inhos_regst_id` COMMENT "入院登记id",
`pat_id` COMMENT "患者id",
`org_id` COMMENT "机构id"
)
 COMMENT "住院患者信息"
 as 
SELECT
  a.inhos_regst_id AS inhos_regst_id, /* 入院登记id */
    a.pat_id AS pat_id, /* 患者id */
   a.org_id AS org_id  /* 机构id */
FROM dw_dwb_sv_is_inhos_pat AS a
LEFT JOIN dw_dwb_sv_is_inhos_pat_extend AS b ON a.inhos_regst_id = b.inhos_regst_id AND a.org_id = b.org_id
LEFT JOIN dwd_dwd_dict_diagnosis_clinic AS c ON a.accord_diagnosis_id = c.cli_diag_id AND a.org_id = c.org_id; 


  
CREATE VIEW dm_dm_cz_ca_pat_info_view(
`pat_id` COMMENT "患者id",
`pat_name` COMMENT "患者姓名",
`org_id` COMMENT "机构id"
)
 COMMENT "患者信息"
 as 
SELECT
  a.pat_id AS pat_id, /* 患者id */
  a.pat_name AS pat_name, /* 患者姓名 */
   a.org_id AS org_id /* 机构id */
  
FROM dw_dwb_cz_ca_pat_info AS a; 



-- 查询视图 示例1:i.inhos_time 不存在, 提示错误 不一致 : Unknown column 'inhos_regst_id' in 'xxxxxxx'
SELECT 
    i.inhos_time,
    i.pat_id 
FROM 
    dm_dm_sv_is_inhos_pat_info_view i
JOIN 
    dm_dm_cz_ca_pat_info_view p ON i.pat_id = p.pat_id AND i.org_id = p.org_id
    
    
-- 查询视图 示例2:  p.orgid 字段不存在, 提示错误不一致: Unknown column 'inhos_regst_id' in 'xxxxxxxx'
SELECT 
    i.pat_id 
FROM 
    dm_dm_sv_is_inhos_pat_info_view i
JOIN 
    dm_dm_cz_ca_pat_info_view p ON i.pat_id = p.pat_id AND i.org_id = p.orgid
0 Answers