Baekuu 2022-11-16 10:40 采纳率: 0%
浏览 72

SQL不是可识别的表提示选项。使用了非布尔类型表达式

course_id”不是可识别的表提示选项。如果它要作为表值函数的参数,请确保您的数据库兼容模式设置为90 .
where附近是在应使用条件的上下文中指定了非布尔类型的表达式。

SELECT distinct takes.ID
from instructor natural join teaches
join takes using (course_id,sec_id, semester, year)
where name='Einstein';

select distinct takes.ID
from takes
where course_id in(select course_id
from instructor natural join teaches
where instructor.name= 'Einstein' );

消息 102,级别 15,状态 1,第 3 行
“course_id”不是已识别的表提示选项。
消息 156,级别 15,状态 1,第 9 行
关键字 'where' 附近有语法错误。
使用了两种方法去解决这个问题都出现了错误,请问这两个问题怎么解决?

我想要达到的结果:找出名为Einstein的教师所教的所有学生的标识,保证结果中没有重复

  • 写回答

1条回答 默认 最新

  • curating 2022-11-16 16:32
    关注

    img


    sql :

    select distinct student.ID
    from student,takes,instructor,teaches
    where
    student.ID=takes.ID AND
    instructor.ID=teaches.ID AND
    takes.course_id=teaches.course_id AND
    takes.sec_id=teaches.sec_id AND
    takes.semester=teaches.semester AND
    takes.year=teaches.year AND
    instructor.name ='Einstein';
    
    评论

报告相同问题?

问题事件

  • 创建了问题 11月16日