创建逻辑视图失败,报错显示表不存在某个字段

Viewed 12

环境信息:
版本: doris-2.1.7

某个查询sql可以执行成功并返回数据, sql如下:


SELECT b.bill_no AS 模板号,
    b.name AS 券名称,
    a.coupon_bill_no AS 券码,
    b.face_value AS 券金额,
    cast(a.verification_time as date) AS 核销时间,
    a.operation_platform AS 核销渠道,
    a.retail_bill_no AS 中台单号,
    c.name AS 领用人,
    c.cell_phone_no AS 领用人手机号,
    b.brand_name AS 品牌,
        CASE
            WHEN cast(b.coupon_type as CHAR) = '1' THEN '现金券'
            WHEN cast(b.coupon_type as CHAR) = '2' THEN '折扣券'
            ELSE NULL
        END AS 券类型,
    vip_member_channel.account_number AS 会员卡号,
    cast(b.enable_date as date) AS 开始时间,
    cast(b.disable_date as date) AS 结束时间,
    cast(b.create_time as date) AS 制单时间,
    cast(COALESCE(cast(b.modify_time as datetime(6)), b.lastchanged) as datetime(6)) AS 修改时间,
    bas_channel.code AS 所属门店代码,
    bas_channel.name AS 所属门店名称
   FROM gxg_member_prod.vip_member_coupon_bill a
     LEFT JOIN gxg_member_prod.vip_member_coupon b ON a.coupon_id = b.id
     LEFT JOIN gxg_member_prod.vip_member_info c ON a.useful_by = c.member_id
     LEFT JOIN e3plus_goods_prod.bas_brand bas_brand ON bas_brand.id = b.brand_id
     LEFT JOIN gxg_ads.v_vip_member_account_number vip_member_channel ON vip_member_channel.member_id = c.member_id AND vip_member_channel.brand_id = b.brand_id
     LEFT JOIN gxg_member_prod.vip_member_shop_guide vip_member_shop_guide ON vip_member_shop_guide.member_id = c.member_id AND vip_member_shop_guide.brand_id = b.brand_id
     LEFT JOIN e3plus_support_prod.bas_channel bas_channel ON bas_channel.id = vip_member_shop_guide.shop_id
  ORDER BY a.verification_time

将该sql封装成逻辑视图,则会报错:

create view test.view_6022 as 
SELECT b.bill_no AS 模板号,
    b.name AS 券名称,
    a.coupon_bill_no AS 券码,
    b.face_value AS 券金额,
    cast(a.verification_time as date) AS 核销时间,
    a.operation_platform AS 核销渠道,
    a.retail_bill_no AS 中台单号,
    c.name AS 领用人,
    c.cell_phone_no AS 领用人手机号,
    b.brand_name AS 品牌,
        CASE
            WHEN cast(b.coupon_type as CHAR) = '1' THEN '现金券'
            WHEN cast(b.coupon_type as CHAR) = '2' THEN '折扣券'
            ELSE NULL
        END AS 券类型,
    vip_member_channel.account_number AS 会员卡号,
    cast(b.enable_date as date) AS 开始时间,
    cast(b.disable_date as date) AS 结束时间,
    cast(b.create_time as date) AS 制单时间,
    cast(COALESCE(cast(b.modify_time as datetime(6)), b.lastchanged) as datetime(6)) AS 修改时间,
    bas_channel.code AS 所属门店代码,
    bas_channel.name AS 所属门店名称
   FROM gxg_member_prod.vip_member_coupon_bill a
     LEFT JOIN gxg_member_prod.vip_member_coupon b ON a.coupon_id = b.id
     LEFT JOIN gxg_member_prod.vip_member_info c ON a.useful_by = c.member_id
     LEFT JOIN e3plus_goods_prod.bas_brand bas_brand ON bas_brand.id = b.brand_id
     LEFT JOIN gxg_ads.v_vip_member_account_number vip_member_channel ON vip_member_channel.member_id = c.member_id AND vip_member_channel.brand_id = b.brand_id
     LEFT JOIN gxg_member_prod.vip_member_shop_guide vip_member_shop_guide ON vip_member_shop_guide.member_id = c.member_id AND vip_member_shop_guide.brand_id = b.brand_id
     LEFT JOIN e3plus_support_prod.bas_channel bas_channel ON bas_channel.id = vip_member_shop_guide.shop_id
  ORDER BY a.verification_time

创建逻辑视图报错信息如下:

SQL 错误 [1054] [42S22]: errCode = 2, detailMessage = Unknown column 'id' in 'e3plus_goods_prod.bas_brand'

fe开启debug打出来的日志:
image.png

1 Answers

来个explain看看,另外看看优化器是否打开


show variables like "%planner%"