假设我有两张表
Student_table:
studentID, lname, fnameTest_table:
testid, studentid, testname, testdate学生可以参加考试A和考试B两种考试。
现在,我想设计一个查询或过程,允许显示来自学生表和test_table的数据,如果学生参加了两个考试A,则显示条件。
只有考试A信息需要与学生信息一起显示,否则任何考试信息都应该显示,或者如果没有可用的考试,则不显示任何考试信息。
发布于 2016-02-02 04:44:22
我所理解的是,如果学生参加了这两个考试,那么你就会去显示学生信息和考试A信息,否则考试就会用学生信息进行。如果我的理解是正确的,请尝试这个查询。
select st.*,tt.*
from student_table st
inner join test_table tt
on st.sid = tt.sid
and tt.sid in (select sid
from test_table
where testname ='testA'
intersect
select sid
from test_tablewhere testname ='testB')
and testname='testA'
union all
select st.*,tt.*
from student_table st
inner join test_table tt
on st.sid = tt.sid
and tt.sid not in (select sid
from test_table
where testname ='testA'
intersect
select sid
from test_table
where testname ='testB') ;https://stackoverflow.com/questions/35139298
复制相似问题