我有 2 张桌子
表 1 列出了测试前的所有测试问题。
表格1:
testid qnid qn
1 1 currency of iran
1 2 highest peak
1 3 longest bridge
表 2 列出了所有学生的测试响应作为测试后的状态:
表 2:
studentid testid qnid status
1 1 1 unanswered
1 1 2 unanswered
2 1 1 unanswered
2 1 2 answered
给出的表 2 不完整,因为它不包含所有 qnid 的响应。
RESULT 应该是列出所有 testid 的表,qnid 来自表 1 的 test 和 studentid,表 2 中匹配的 testid 的状态,qnid for studentid=2
即结果:
testid qnid studentid status
1 1 2 unanswered
1 2 2 answered
1 3
表 2 不包含表 1 中 testid=1 qnid=3 的值,因此其空间应在 RESULT 表中留空。
我使用的查询:
select distinct table1.testid,table1.qnid,table2.status
from table1
left outer join table2
on table1.testid = table2.testid
where (table2.studentid = 2
or table2.studentid =NULL)
但相反的输出是:
testid qnid status
1 1 unanswered
1 1 answered
1 2 unanswered
1 2 answered
1 3 unanswered
1 3 answered