【问题标题】:MySQL Complex Inner Join Query getting errorMySQL 复杂内连接查询出现错误
【发布时间】:2013-02-22 19:58:28
【问题描述】:

查询定义:
选择艺术成绩85或以上的学生

在任何计算机课程中也有 85 分或更高的成绩
QUERY(在 3 部分中解释是在 MySQLWorkBench 上执行的单个查询):

select Students.StudFirstName,Student_Schedules.Grade
from 
(Select Distinct Students.StudentID,Students.StudFirstName,Student_Schedules.Grade 
from (((Students

Inner Join Student_Schedules
On Student_Schedules.StudentID = Students.StudentID)

Inner Join Classes
On Classes.ClassID = Student_Schedules.ClassID)

Inner Join Subjects
On Subjects.SubjectID = Classes.SubjectID)

Inner Join Categories
On Subjects.CategoryID = Categories.CategoryID

where Categories.CategoryDescription = 'Art' and Student_Schedules.Grade >= 85)
            As Stud_Art


上面的代码提取了艺术成绩85或以上的学生

Inner Join

(Select Distinct Students.StudentID,Students.StudFirstName,Student_Schedules.Grade 
from (((Students

Inner Join Student_Schedules
On Student_Schedules.StudentID = Students.StudentID)

Inner Join Classes
On Classes.ClassID = Student_Schedules.ClassID)

Inner Join Subjects
On Subjects.SubjectID = Classes.SubjectID)

Inner Join Categories
On Subjects.CategoryID = Categories.CategoryID

WHERE Categories.CategoryDescription LIKE '%Computer%' AND Student_Schedules.Grade >=    85)

As Stud_CS


以上代码提取计算机成绩85或以上的学生

On Stud_CS.StudentID = Stud_Art.StudentID;


以上代码与 Art and Computer 中的 StudentID 匹配


来自 MySQLWorkBench 的错误:
错误代码:1054。“字段列表”中的未知列“Students.StudFirstName”

上述查询可以通过 SubQuery 技术解决,但我想了解如何使用 Inner Join 技术解决

【问题讨论】:

    标签: mysql mysql-workbench


    【解决方案1】:

    您正在尝试检索 Student.StudFirstName 和 Student_Schedules.Grade,但您的表别名是 Stud_Art 和 Stud_CS。可能是这个问题吗?

    我觉得第一部分应该是这样的:

    select Stud_Art.StudFirstName,Stud_Art.Grade
    

    【讨论】:

    • 是的,你是对的。我已经更正了第一部分。然后我也忘了在两个选择查询中都包含 Student.StudentID
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-29
    • 1970-01-01
    • 2012-11-29
    • 2019-05-19
    • 2019-06-20
    • 2016-06-28
    • 2011-10-21
    相关资源
    最近更新 更多