SQL - подзапрос, ВЫБРАТЬ из выбора

Мой запрос к базе данных:

CREATE DATABASE [College Assignment]
PRINT 'CREATE DATABASE College Assignment'
GO
USE [College Assignment]

CREATE TABLE Departments
(DEPART nvarchar(255) NOT NULL, D_NAME nvarchar(255), HEAD  nvarchar(255),PRIMARY KEY (DEPART));

CREATE TABLE Courses
(COURSE_ID      nvarchar(255) NOT NULL,
COURSE_NAME     nvarchar(255),
"TYPE"          nvarchar(255),
POINTS          float,
DEPARTMENT_ID   nvarchar(255),
PRIMARY KEY     (COURSE_ID),
CONSTRAINT fk_dep
FOREIGN KEY (DEPARTMENT_ID) REFERENCES Departments(DEPART));

CREATE TABLE Students
(STUDENT_ID     float NOT NULL,
S_NAME          nvarchar(255),
CITY            nvarchar(255),
PRIMARY KEY (STUDENT_ID));

CREATE TABLE Grades
(STUDENT_ID     float NOT NULL,
COURSE_ID       nvarchar(255) NOT NULL,
SEMESTER        nvarchar(255),
TERM            nvarchar(255),
GRADE           smallint,
GRADE_SEM       smallint,
PRIMARY KEY (STUDENT_ID, COURSE_ID),
CONSTRAINT fk_student
FOREIGN KEY (STUDENT_ID) REFERENCES Students(STUDENT_ID),
CONSTRAINT fk_course
FOREIGN KEY (COURSE_ID) REFERENCES Courses(COURSE_ID));

INSERT INTO Departments VALUES
('BS','Buisnes','Dr.Eyal'),
('CH','Chemistry','Prof.Doron'),
('CS','Computer Science','Dr.Israel'),
('MT','Mathematics','Prof.Levi');

INSERT INTO Courses VALUES
('B-10','Marketing','CLASS',5,'BS'),
('B-40','Operations Res.','SEMIN',3,'BS'),
('C-200','Programing','LAB',4,'CS'),
('C-300','Pascal','LAB',4,'CS'),
('C-55','Data Base','CLASS',3,'CS'),
('M-100','Linear Algebra','CLASS',3,'MT'),
('M-200','Numeric Analyses','CLASS',3,'MT');

INSERT INTO Students VALUES
(105,'Moshe','Haifa'),
(107,'Eyal','Tel Aviv'),
(110,'Ran','Haifa'),
(200,'David','Tel Aviv'),
(210,'Dan','Tel Aviv'),
(240,'Ayelet','Tel Aviv'),
(245,'Yoel','Haifa'),
(310,'Tova','Jerusalem');

INSERT INTO Grades VALUES
(105,'B-40','WIN1999','B',70,70),
(105,'C-200','AUT1999','A',90,85),
(105,'C-55','SUM1998','A',58,70),
(105,'M-100','SUM1998','B',75,50),
(200,'B-10','AUT1999','A',70,65),
(200,'C-200','AUT1999','B',78,50),
(200,'M-100','SUM1998','B',90,90),
(210,'B-10','WIN1999','A',78,50),
(210,'C-200','AUT1999','A',85,80),
(210,'M-100','AUT1999','A',90,90),
(245,'B-10','AUT1999','A',80,70),
(245,'B-40','WIN1998','A',85,95),
(245,'M-100','AUT1999','A',90,80),
(310,'M-100','SUM1998','A',65,100);

Теперь я пытаюсь напечатать все названия курсов и имена студентов, где их оценка, умноженная на 1,1, больше, чем оценка за семестр.

Теперь мне удается это сделать, распечатав course_id и student_id, но затем в этом результате я пытаюсь подключиться между student_id и их именами, чтобы на самом деле напечатать имя студента (s_name) и название курса вместо (course_id)

это текущий сценарий, который у меня есть:

SELECT STUDENT_ID,COURSE_ID
FROM Grades
WHERE (Grade*1.1>GRADE_SEM)

так что в основном все, что я хочу, это те же результаты, что и я, но иметь имя ученика (s_name) и course_name вместо своего id's. (это отпечаток, который я получаю прямо сейчас

SQL - подзапрос, ВЫБРАТЬ из выбора

ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
0
0
110
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

На самом деле все просто Join Это умеет

SELECT 
     Students.S_Name, Courses.Course_Name,
     Students.Student_ID, Courses.Course_ID
FROM 
     Grades 
     INNER JOIN Students on Students.Student_ID = Grades.Student_ID
     INNER JOIN Courses on Courses.Course_ID = Grades.Course_ID
WHERE 
     (Grades.Grade*1.1>Grades.GRADE_SEM)

Подробнее о Join можно прочитать здесь Присоединиться к документации

Вы можете увидеть здесь Demo = Демо

Удивительный! спасибо за быстрый ответ, я буду читать дальше во внутреннем соединении / присоединении!

Stellar 31.10.2018 03:01

На самом деле вы задаете общий вопрос .. И у вас столько похожих ответов .. Но рад помочь ..: D

dwir182 31.10.2018 03:01

Другие вопросы по теме