navicat中将查询结果放在一张新的永久表,一直提示语法错误
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 = '计算机系')
这样能够确保正确的逻辑运算顺序。
【相关推荐】