J'ai ce code et de ses tables temporaires de sorte que vous pouvez exécuter.
create table #student
(
id int identity(1,1),
firstname varchar(50),
lastname varchar(50)
)
create table #quiz
(
id int identity(1,1),
quiz_name varchar(50)
)
create table #quiz_details
(
id int identity(1,1),
quiz_id int,
student_id int
)
insert into #student(firstname, lastname)
values ('LeBron', 'James'), ('Stephen', 'Curry')
insert into #quiz(quiz_name)
values('NBA 50 Greatest Player Quiz'), ('NBA Top 10 3 point shooters')
insert into #quiz_details(quiz_id, student_id)
values (1, 2), (2, 1)
drop table #student
drop table #quiz
drop table #quiz_details
Donc, comme vous pouvez le voir lebron james prend le quiz de la nba top 10 3 point de tireurs quiz et stephen curry prend la nba 50 plus grand joueur de quiz.
Tout ce que je veux est d'obtenir la chose qu'ils n'en ont pas encore, par exemple LeBron n'a pas pris les 50 plus grand joueur de quiz donc ce que je veux, c'est comme cela.
id quiz_name firstname lastname
----------------------------------------------------
1 NBA 50 Greatest Player Quiz NULL NULL
Je veux 2 paramètres, l'id de lebron et l'id du quiz, de sorte que je sais que lebron ou stephen n'a pas pris encore, mais comment ferais-je si la valeur de l' student_id
est toujours null?
Ma tentative:
select
QD.id,
Q.quiz_name,
S.firstname,
S.lastname
from
#quiz_details QD
inner join
#quiz Q on Q.id = QD.quiz_id
inner join
#student S on S.id = QD.student_id