Я новичок в SQL и теперь изучаю объединения таблиц.SQL: Присоединиться к трем таблицам
Я застрял в соединении трех таблиц.
(Я дал строки я вставил к таблицам также для справки.)
Моих таблиц
--Table1
create table sql_students(
stu_studentid int not null primary key,
stu_name varchar(100) not null,
stu_regnnumber bigint unique not null
)
--Rows inserted to Table1
insert into sql_students (stu_studentid,stu_name,stu_regnnumber) values (1,'John',194300)
insert into sql_students (stu_studentid,stu_name,stu_regnnumber) values (2,'Joy',959595)
insert into sql_students (stu_studentid,stu_name,stu_regnnumber) values (3,'Lucy',474848)
--Table2
create table sql_exam(
exa_examid bigint not null primary key,
exa_name varchar(100) not null,
exa_maxmark decimal(5,2) not null,
exa_minmarkreqdforpass decimal(5,2) not null,
exa_examscheduletime datetime not null
)
--Rows inserted into Table2
insert into sql_exam(exa_examid,exa_name,exa_maxmark,exa_minmarkreqdforpass,exa_examscheduletime) values (1,'Maths',100,40,'2012-10-10 10:00')
insert into sql_exam(exa_examid,exa_name,exa_maxmark,exa_minmarkreqdforpass,exa_examscheduletime) values (2,'English',75,35,'2012-10-11 10:00')
--Table3
create table sql_studentmarks(
stm_studentid int foreign key references sql_students(stu_studentid),
stm_examid bigint foreign key references sql_exam(exa_examid),
stm_mark decimal(5,2)
)
--Rows inserted into Table3
insert into sql_studentmarks(stm_studentid,stm_examid,stm_mark) values (1,1,80)
insert into sql_studentmarks(stm_studentid,stm_examid,stm_mark) values (2,1,90)
insert into sql_studentmarks(stm_studentid,stm_examid,stm_mark) values (3,1,40)
insert into sql_studentmarks(stm_studentid,stm_examid,stm_mark) values (1,2,70)
insert into sql_studentmarks(stm_studentid,stm_examid,stm_mark) values (2,2,60)
insert into sql_studentmarks(stm_studentid,stm_examid,stm_mark) values (3,2,17)
Мне нужны руководящие принципы, чтобы получить
- Всех студентов, сдал все экзамены
- Все учащиеся, которые посетили все экзамены
- Все учащиеся и их отличия в математике и английском языке.
Заранее спасибо.
Что вы пробовали до сих пор, вам нужно показать свои усилия, чтобы мы могли помочь, а не только нужные вам запросы. – Sparky
Все, что вам нужно, - это 2 предложения INNER JOIN, чтобы присоединиться к 3 таблицам. Добавьте предложение WHERE в конце для решения проблем 1, 2 и 3. Покажите нам что-то, используя то, что я сказал, и мы исправим его для вас. –
Hi Sparky, для первого, я попробовал «select stm_studentid from sql_exam присоединиться к sql_studentmarks на exa_examid = stm_examid и stm_mark> exa_minmarkreqdforpass внутреннее соединение sql_students на stu_studentid = stm_studentid". Он не работал по мере необходимости. – user3209814