日期:2014-05-18 浏览次数:20575 次
select * from t a where not exists(select 1 from t where 课程=a.课程 and 任课教师<>b.监考教师 )
------解决方案--------------------
select * from t a
where not exists(select 1 from t where 课程=a.课程 and 任课教师<>b.监考教师 )
------解决方案--------------------
create table # (课程 varchar(10), 任课教师 varchar(10), 监考教师 varchar(10), 考试教室 int, 编号 int) insert into # select '计算机' , '张三', '张三', 101 , 1 union all select '计算机' , '王五', '李四', 102 , 2 union all select '计算机' , '张三', '王五', 103 , 3 union all select '软件工程' , '钱七' , '张三', 207 , 4 union all select '软件工程' , '冯九' , '李四', 209 , 5 union all select '软件工程' , '钱七' , '陈八', 405 , 6 select * from # a where not exists(select 1 from # where 课程=a.课程 and 任课教师 in(select 监考教师 from # ) ) /* 课程 任课教师 监考教师 考试教室 编号 ---------- ---------- ---------- ----------- ----------- 软件工程 钱七 张三 207 4 软件工程 冯九 李四 209 5 软件工程 钱七 陈八 405 6 (所影响的行数为 3 行) */
------解决方案--------------------
select * from # a where 任课教师 in (select 监考教师 from # where 课程=a.课程)