在SQL中使用大小写时出错

在SQL中使用大小写时出错,sql,Sql,我正在关注Ben O.Smith为数据科学家介绍的SQL,但我在本地mysql的第9页遇到了以下代码问题: PDF网址: SQL错误1054:“where子句”中的未知列“s.id” 我遵循了第3页列出的完全相同的数据结构。但是我不能把我的头绕在错误上 以下代码中是否有错误 select id, name, (select case when avg_gpa >= 3.5 then 2 when

我正在关注Ben O.Smith为数据科学家介绍的SQL,但我在本地mysql的第9页遇到了以下代码问题:

PDF网址:

SQL错误1054:“where子句”中的未知列“s.id”

我遵循了第3页列出的完全相同的数据结构。但是我不能把我的头绕在错误上

以下代码中是否有错误

select 
    id, 
    name, 
    (select case
                when avg_gpa >= 3.5 then 2
                when avg_gpa < 3.5 and avg_gpa >= 3.0 then 1
                else 0
                end as gpa_type 
    from
        (select avg(gpa) as avg_gpa
         from term_gpa
         where id=s.id) as avg_gpa_table
    ) as gpa_type
from 
    student as s
ORDER BY 
    name ASC;

试着像这样重写它

select s.id
     , s.name
     , case
            when avg_gpa >= 3.5                   then 2
            when avg_gpa < 3.5 and avg_gpa >= 3.0 then 1
            else 0
        end as gpa_type 
from student as s
LEFT JOIN  (           
            select id , avg(gpa) as avg_gpa
            from term_gpa
            Group by id
           ) as avg_gpa_table
ON avg_gpa_table.id = s.id
ORDER BY s.name ASC;

书名不是问题。请用你的标题来描述你遇到的问题或你提出的问题。你的书名应该解释你的困难是什么,而书名却没有这样做。我们也不会去某个地方阅读这本书,以获取帮助您所需的信息。在编辑时,请在问题本身中提供相关详细信息。有关更多信息,请参阅。我假设您使用的是MySQL,对吗?