这里的SC_2 起的是什么作用
>>只是个别名.是在重新JOIN 了SC这个table后,为它指定的别名

解决方案 »

  1.   

    这里的SC_2 起的是什么作用是子查询中SC表的别名,为了不混淆外层的SC表
      

  2.   

     select Student.S#,Student.Sname from Student,SC where Student.S#=SC.S# and SC.C#='001'and SC.C#='002'
    你那句跟这句是一样的
      

  3.   

    select * from Student a where exists(select 1 from SC where S#=a.S# and C#='002') and exists(select 1 from SC where S#=a.S# and C#='001')
      

  4.   

    这么说吧sc是个表
    表别名或子查询别名
    就代表了表或者子查询结果集的行集。一个别名指代一个行集。当一个行集多次使用时,用别名来处理。select a.* from tb a ,tb b where a.id=b.id
    表只有一个,但却是从两个行集中进行处理。就是这样。把别名理解为当前产生的行集的名字就可以了。
      

  5.   

    别名:
    1)可以提高可读性
    2)可以减少引用的长度,录入tablename1.a, 当tablename1 as t1 后,可以用t1.a来引用
    3)当表自身连接时必须用别名
      

  6.   


    哈哈,是啊
    SORRY
    select Student.S#,Student.Sname from Student,SC where Student.S#=SC.S# and (SC.C#='001' or SC.C#='002')
      

  7.   


    select S.S#,S.Sname 
    from Student S join SC on S.S#=SC.S#
    where SC.C# in ('001','002')
      

  8.   

    如果不起别名和自己连接,也就是把SC_2.S#=SC.S#去掉,会出错误吗