为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:DM DBMS [8.1.3.26]
【操作系统】:
【CPU】:
【问题描述】*:select
t.id,
t.teacher_name,
t.teacher_type,
(
select
wm_concat(d1.dept_name)
from
tc_dept_staff_rel d
left join tc_dept d1 on
d.dept_id = d1.id
where
d.staff_id = t.staff_id
and d.is_delete = 0 and d1.is_delete = 0
) as deptName
from
tc_teacher t
left join tc_staff s on
t.staff_id = s.id
group BY t.id
一个sql 回车后 group BY t.id 就不报错 这是什么原理
可能为第三方工具语法解析问题,建议使用达梦数据库管理工具manager或百灵SQLark进行SQL语句开发。
执行这个脚本,完整覆盖您提供的SQL,并不会报错:
-- sql由deepseek辅助,方向生成
-- 教师表
CREATE TABLE tc_teacher (
id NUMBER PRIMARY KEY,
teacher_name VARCHAR2(100),
teacher_type VARCHAR2(50),
staff_id NUMBER,
create_time DATE,
update_time DATE,
is_delete NUMBER(1) DEFAULT 0
);
-- 员工表
CREATE TABLE tc_staff (
id NUMBER PRIMARY KEY,
staff_name VARCHAR2(100),
-- 其他员工相关字段
create_time DATE,
update_time DATE,
is_delete NUMBER(1) DEFAULT 0
);
-- 部门表
CREATE TABLE tc_dept (
id NUMBER PRIMARY KEY,
dept_name VARCHAR2(100),
parent_id NUMBER,
dept_code VARCHAR2(50),
-- 其他部门相关字段
create_time DATE,
update_time DATE,
is_delete NUMBER(1) DEFAULT 0
);
-- 部门员工关联表
CREATE TABLE tc_dept_staff_rel (
id NUMBER PRIMARY KEY,
dept_id NUMBER,
staff_id NUMBER,
position VARCHAR2(100),
-- 其他关联信息
create_time DATE,
update_time DATE,
is_delete NUMBER(1) DEFAULT 0,
CONSTRAINT fk_dept FOREIGN KEY (dept_id) REFERENCES tc_dept(id),
CONSTRAINT fk_staff FOREIGN KEY (staff_id) REFERENCES tc_staff(id)
);
-- 创建索引以提高查询性能
CREATE INDEX idx_teacher_staff_id ON tc_teacher(staff_id);
CREATE INDEX idx_dept_staff_rel_staff_id ON tc_dept_staff_rel(staff_id);
CREATE INDEX idx_dept_staff_rel_dept_id ON tc_dept_staff_rel(dept_id);
select
t.id,
t.teacher_name,
t.teacher_type,
(
select
wm_concat(d1.dept_name)
from
tc_dept_staff_rel d
left join tc_dept d1 on
d.dept_id = d1.id
where
d.staff_id = t.staff_id
and d.is_delete = 0 and d1.is_delete = 0
) as deptName
from
tc_teacher t
left join tc_staff s on
t.staff_id = s.id
group BY t.id;
/
exit;
s.id
group BY t.id
换行部分是否有其他非法空白字符
-- 下面结果为4,表示兼容Mysql的Group语法
select para_name,para_value from v$dm_ini
where para_name like 'COMPATIBLE_MODE'
可以参考一下这个试试
https://eco.dameng.com/document/dm/zh-cn/faq/faq-errorcode