数据库系统原理、数据库

img

题目:求既学过'002'号课程,又学过'003'号课程的同学的学号?

表达式1:
Select S1.S# as S#1,S1.S# as S#2
From SC as S1 ,SC as S2
Where S1.C# = '002' and S2.C# = '003';

表达式2:
Select S1.S#,S1.S#
From SC S1 ,SC S2
Where S1.C# = '002' and S2.C# = '003';

请问表达式1的公式,是否可以直接简化成表达式2的书写形式,语法是否正确?

as可以省略,但是可读性会变差,而且在有些情况下会解析出错,所以最好是习惯写as
除了内关联之外,其实也可以用嵌套查询
内层先查where c# in ('002','003'),外层筛选一下行数是2的数据
或者用group by having count=2这种语法省略嵌套