我可以使用什么 T-sql 查询来确保来自一个 table 的所有 ID 在一秒钟内出现 table
What T-sql query can i use to ensure all ids from one table are present in a second table
我有 table 个必答题。
我还有另一个 table 用于学生回答。
如何编写 sql 查询来检查 所有 必填问题 ID 是否存在于特定学生的答案 table 中?
我试过:
if exists(select * from scores s where s.matric=@matric and s.qid not in (select qid from questions q where q.required=1))
select 0
else
select 1
没有 运行 测试,但乍一看,我会翻转 select 语句,类似于以下内容:
SELECT 1
FROM Questions
WHERE [Required] = 1
AND qid NOT IN (
SELECT qid
FROM Scores s
WHERE s.matric = @matric
)
这是另一种写法,在问题 ID 集和回答 ID 集之间使用 EXCEPT
:
IF EXISTS (
SELECT qid FROM questions WHERE required=1
EXCEPT
SELECT qid FROM scores WHERE matric=@matric
)
SELECT 'Some or all questions unanswered';
ELSE
SELECT 'All questions answered';
我有 table 个必答题。
我还有另一个 table 用于学生回答。
如何编写 sql 查询来检查 所有 必填问题 ID 是否存在于特定学生的答案 table 中?
我试过:
if exists(select * from scores s where s.matric=@matric and s.qid not in (select qid from questions q where q.required=1))
select 0
else
select 1
没有 运行 测试,但乍一看,我会翻转 select 语句,类似于以下内容:
SELECT 1
FROM Questions
WHERE [Required] = 1
AND qid NOT IN (
SELECT qid
FROM Scores s
WHERE s.matric = @matric
)
这是另一种写法,在问题 ID 集和回答 ID 集之间使用 EXCEPT
:
IF EXISTS (
SELECT qid FROM questions WHERE required=1
EXCEPT
SELECT qid FROM scores WHERE matric=@matric
)
SELECT 'Some or all questions unanswered';
ELSE
SELECT 'All questions answered';