2013-03-07 74 views
1

查詢定義:誰擁有的85或更高的藝術品位
選擇學生

誰也有85或更好的等級中的任何計算機課程
QUERY(在3個部分解釋是關於MySQLWorkBench執行單個查詢):
MySQL的複雜的內部聯接查詢收到錯誤

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 


上面的代碼中提取誰在電腦

On Stud_CS.StudentID = Stud_Art.StudentID; 


有85或更好的成績優異 以上代碼匹配Art和Computer的學生ID


錯誤出自MySQLWorkBench:
錯誤代碼:在「字段列表」 1054年未知列「Students.StudFirstName」

上面的查詢可以用子查詢技術來解決,但我想了解是怎麼回事可能使用Inner Join技術

回答

0

您正在嘗試檢索Students.StudFirstName和Student_Schedules.Grade,但您的表別名是Stud_Art和Stud_CS。這可能是問題嗎?

我認爲,第一部分應該是這樣的:

select Stud_Art.StudFirstName,Stud_Art.Grade 
+0

是你right.I已經糾正了第一part.Then我也忘了,包括Students.StudentID兩個選擇查詢 – Robin 2013-03-07 15:41:48

+0

很樂意幫忙:-) – 2013-03-07 15:44:58