子查询设置别名

【 使用环境 】生产环境
【 OB 】
【 使用版本 】5.7.25-OceanBase_CE-v4.2.1.10
【问题描述】sql别名
【复现路径】

SELECT *
FROM
    (
        SELECT
            *
        FROM
            user
        WHERE
            id = '1750666530023010076160'
    ) as tp_user
WHERE
    id = '1750666530023010076160'


4 个赞

支持这种方式

2 个赞

是部署版本docker的原因吗?我这执行报错

1 个赞

emp表存在么

1 个赞

存在,用github上的示例创建的表

1 个赞

1 个赞


没有任何区别,这边测试是支持的。使用的是435,有可能是版本问题 你换个版本试试?如425

1 个赞

t 前面是不是要有个空格啊

1 个赞

一样


更新了最新版本的镜像 5.7.25-OceanBase_CE-v4.3.5.2

1 个赞

你是不是没有 use database。 有选择数据库么
单独执行条普通查询看看

1 个赞

麻烦通过这个trace id 去observer日志grep一下
image

cat observer.log* |grep " "

1 个赞

有的,


1 个赞

你试一下不加 a 看看

1 个赞

一样的,试过了

1 个赞

执行报错 根据trace_id捞一下 日志信息

是出现什么报错了吗

[root@b07a39773c47 log]# cat observer.log* |grep "YB420A0AC8C8-0006383A8D584280-0-0"
[2025-06-24 02:38:35.039820] INFO  [SHARE.SCHEMA] get_table_id (ob_schema_getter_guard.cpp:1780) [2013][T1002_L0_G0][T1002][YB420A0AC8C8-0006383A8D584280-0-0] [lt=17] table not exist(tenant_id=1002, tenant_id=1002, database_id=500014, session_id=3221738367, table_name=a, is_index=false, schema_version=1750727684238144, schema_mgr_tenant_id=1002)
[2025-06-24 02:38:35.039854] INFO  [SQL.RESV] check_table_exist_or_not (ob_dml_resolver.cpp:11419) [2013][T1002_L0_G0][T1002][YB420A0AC8C8-0006383A8D584280-0-0] [lt=32] table not exist(tenant_id=1002, catalog_id=0, database_id=500014, table_name=a, table_name.ptr()="data_size:1, data:61", ret=-5019)
[2025-06-24 02:38:35.039926] INFO  [SERVER] send_error_packet (obmp_packet_sender.cpp:376) [2013][T1002_L0_G0][T1002][YB420A0AC8C8-0006383A8D584280-0-0] [lt=0] sending error packet(ob_error=-5019, client error=1146, extra_err_info=NULL, lbt()="0x269eb08d 0x12ee4200 0x12e8b79c 0x9292d25 0x927df13 0x9276fad 0x9264154 0x12c511b9 0x2665ebd2 0x7f1a006081cf 0x7f1a00239dd3")
[root@b07a39773c47 log]# cat observer.log* |grep "YB420A0AC8C8-0006383A8D584280-0-0"
[2025-06-24 02:38:35.039820] INFO  [SHARE.SCHEMA] get_table_id (ob_schema_getter_guard.cpp:1780) [2013][T1002_L0_G0][T1002][YB420A0AC8C8-0006383A8D584280-0-0] [lt=17] table not exist(tenant_id=1002, tenant_id=1002, database_id=500014, session_id=3221738367, table_name=a, is_index=false, schema_version=1750727684238144, schema_mgr_tenant_id=1002)
[2025-06-24 02:38:35.039854] INFO  [SQL.RESV] check_table_exist_or_not (ob_dml_resolver.cpp:11419) [2013][T1002_L0_G0][T1002][YB420A0AC8C8-0006383A8D584280-0-0] [lt=32] table not exist(tenant_id=1002, catalog_id=0, database_id=500014, table_name=a, table_name.ptr()="data_size:1, data:61", ret=-5019)
[2025-06-24 02:38:35.039926] INFO  [SERVER] send_error_packet (obmp_packet_sender.cpp:376) [2013][T1002_L0_G0][T1002][YB420A0AC8C8-0006383A8D584280-0-0] [lt=0] sending error packet(ob_error=-5019, client error=1146, extra_err_info=NULL, lbt()="0x269eb08d 0x12ee4200 0x12e8b79c 0x9292d25 0x927df13 0x9276fad 0x9264154 0x12c511b9 0x2665ebd2 0x7f1a006081cf 0x7f1a00239dd3")
[执行语句1]
select * from(SELECT * FROM emp)a limit 1
#SELECT * FROM emp
#select 1 as a,(SELECT job FROM emp limit 1) as b
执行失败,失败原因:
Table 'basesystem.a' doesn't exist
[10.10.200.200:2882] [2025-06-24 02:38:35.039948] [YB420A0AC8C8-0006383A8D584280-0-0]

你好 麻烦提供一下 emp的建表sql。
也麻烦尝试下命令行执行试试,黑屏化登录集群