如何解决SQL连接中的错误?

时间:2018-11-06 03:24:16

标签: sql join inner-join self-join clause

Courses

Instructors

Sections

Students

StudentSchedule

StudentSchedule Part 2

使用提供的数据库,执行Write和SELECT语句以获取以下信息:

简单联接

节表

  1. 讲师6总共教多少学分?

我尝试过的事情:

select sum(c.credithours) 
from courses c
join sections s on c.courseid = s.courseid
join instructors i on s.instructor = i.ID
                   and s.instructor = 6; 

错误:

  

FROM子句中的语法错误

  1. 请提供1147室正在教授的所有课程的CRN,课程名称,描述和学时,时间和房间编号。是否有冲突?

我尝试过的:

select CRN, CourseName, description, credithours, timedays, roomno
from courses c
join sections s on c.courseid = s.courseid
join instructors i on s.instructor = i.ID
                   and roomno = "F1147";

错误:

  

FROM子句中的语法错误

StudentSchedule表

  1. 提供使用CRN = 30101为该部分注册的学生姓名和ID的列表。 (列出学生的名字,姓氏,ID和CRN)

我尝试过的事情:

select firstname, lastname, ID, CRN 
from studentschedule ss
join students s on ss.student_id = s.id
                and CRN = 30101;

错误:

  

FROM子句中的语法错误

  1. 请列出CRN = 30115部分中的所有学生姓名(姓和名)。

我尝试过的:

select firstname, lastname, ID, CRN 
from studentschedule ss
join students s on ss.student_id = s.id
                and CRN = 30115;

错误:

  

FROM子句中的语法错误

  1. 请列出id = 6的学生正在参加的所有部分的所有部分信息。

我尝试过的:

select s.* 
from studentschedule ss
join sections s on ss.CRN = s.CRN
                and studentid = 6;

错误:

  

FROM子句中的语法错误

  1. 高级(多表):请列出课程名称,CRN和CRN = 30115部分中的所有学生的姓名。

我尝试过的事情:

select firstname, lastname, ID, CRN, coursename
from studentschedule ss
join students s on ss.student_id = s.id
join sections sec on ss.CRN = sec.CRN
join courses c on sec.courseid = c.courseid
               and CRN = 30115;

错误:

  

FROM子句中的语法错误

1 个答案:

答案 0 :(得分:-2)

访问本身没有JOIN。

您必须使用INNER JOIN,LEFT JOIN或RIGHT JOIN-否则会出现该错误。

例如:问题1的解决方案是:

SELECT Sum([CreditHours]) AS totalHours
FROM Courses INNER JOIN Sections ON Courses.CourseID = Sections.CourseID
WHERE (((Sections.Instructor)=6));

请注意,除非他们要求提供有关讲师的姓名或其他详细信息,否则您根本不需要此讲师表。

还请注意:我不会担心在这样一个简单的查询上使用短表名进行优化。