1.SQL每日一题
同时满足上001和003课程的同学
CREATE TABLE F0215
(
StuID INT,
CID VARCHAR(10),
Course INT
)
INSERT INTO F0215 VALUES
(1,'001',67),
(1,'002',89),
(1,'003',94),
(2,'001',95),
(2,'002',88),
(2,'004',78),
(3,'001',94),
(3,'002',77),
(3,'003',90)
select * from f0215
(1)使用交集的方法关联查询
select SC.STUID
from F0215 SC
where SC.CID='001'
intersect
select SC.STUID
from F0215 SC
where SC.CID='003'
注:
INTERSECT操作符在SQL Server中用于返回两个查询结果中的共同记录。
INTERSECT操作符用于比较两个查询的结果,并返回两个查询中都存在的记录。这意味着,只有当某个记录同时出现在两个查询的结果中时,它才会被INTERSECT操作符选中。这种操作符在数据比较和筛选共同记录的场景中非常有用
(2)使用with虚拟表的方法关联查询
with X as (
select * from F0215
where CID='001')
select * from X left join F0215 t1 on X.STUID=t1.STUID
where t1.CID='003'