Как исправить ошибки в SQL-соединениях? - PullRequest
0 голосов
/ 06 ноября 2018

Курсы

Инструкторы

1010 * Сортовой *

Студенты

StudentSchedule

StudentSchedule часть 2

Используя предоставленную базу данных, напишите и выполните инструкции 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. Пожалуйста, укажите CRN, название курса, описание и кредитные часы, время и комнату для всех курсов, которые преподаются в аудитории 1147. Есть ли какие-либо конфликты?

Что я пробовал:

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

Таблица ученического расписания

  1. Укажите список имен и идентификаторов учащихся, которые зарегистрированы в разделе с CRN = 30101. (Укажите имя, фамилию, 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 голосов
/ 06 ноября 2018

Access не имеет 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));

обратите внимание, что для этого вам совсем не нужен стол инструктора, если только они не попросят имя или другие сведения об инструкторе.

также обратите внимание: я не буду беспокоиться об оптимизации использования коротких имен таблиц в таком простом запросе.

...