mysql将查询结果放在一张新的永久表,一直提示语法错误

navicat中将查询结果放在一张新的永久表,一直提示语法错误

img

and (dept='信息系' or dept='计算机系')
或者
and dept in ('信息系', '计算机系')

【以下回答由 GPT 生成】

首先,错误提示信息表明在SQL语句的第一行存在语法错误,具体地说是表名中的短划线导致了该错误。在MySQL中,表名不能包含短划线或其他特殊字符,因此我们需要修改表名。

要修复这个语法错误并创建新的永久表,我们只需要将表名中的短划线替换为其他合法的字符即可。

以下是修改后的SQL语句:

CREATE TABLE new_SC AS 
SELECT Sname, sex, Cname, grade 
FROM student, Sc, course 
WHERE student.Sno = sc.Sno 
AND course.Cno = sc.Cno 
AND dept = '信息系' OR dept = '计算机系'

将旧的表名new-SC改为新的表名new_SC。

这样就修复了语法错误,可以成功创建新的永久表"new_SC"并将查询结果存储在其中。

请注意,我们为了避免未意图的条件判断导致的逻辑错误,可以使用括号明确指定逻辑关系,例如:

CREATE TABLE new_SC AS 
SELECT Sname, sex, Cname, grade 
FROM student, Sc, course 
WHERE student.Sno = sc.Sno 
AND course.Cno = sc.Cno 
AND (dept = '信息系' OR dept = '计算机系')

这样能够确保正确的逻辑运算顺序。



【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^