我想先根据字段2访问打开一个表,然后再在此基础上再根据刚刚获得的新表的某字段2再次打开,怎样写?
例如: select * from Student where 系别=计算机
      ‘ 打开了系别=计算机的所有记录组成了新的一个表
       然后我想在从这个新表中获取某字段no=98001的信息
注意:要求用嵌套

解决方案 »

  1.   

    不大明白你要干什么,新表和Student有什么区别?只是记录比Student少一些吗?
      

  2.   

    select * from (select * from Student where 系别=计算机) where no=98001
      

  3.   

    构造子查询的语法和一般规则 
    ---- 子查询的select语句总是被括在括号里。其语法如下: (select [all|distinct] subquery_select_listfrom table_name1|view_name1, table_name2|view_name2,…where search_conditionsgroup by expression1, expression2,…having search_conditions)---- 使用子查询时应遵守以下规则: 
    ---- subquery_select_list指定的所有列的最大长度之和不能超过256字节。 ---- 子查询不能用于order by、group by和compute by列表。 ---- 子查询不能在内部操纵其结果,即不能包括into、order by、compute子句和union运算符。 ---- 子查询不能包括for browse子句。 ---- subquery_select_list一般只能包括一个表达式或列名,只有由exists引导的子查询例外,它的select列表通常使用星号(*)来表示。 ---- 由比较运算符引导的子查询必须返回单值,并且值的类型必须符合该运算符的类型转换规则。 ---- 子查询中不能使用text和image数据类型。 ---- 可更新游标的select语句不允许使用相关子查询。 ---- 内嵌级限制为16。 ---- UNION语句中,每个SELECT语句的最大子查询数为16。 
      

  4.   

    select * from (select * from Student where 系别=计算机) where no=98001就行了
      

  5.   

    select * from (select * from Student where 系别=计算机) where no=98001
    我知道这样写,但按照你的方法就有些重复了,打开了两次select * from Student where 系别=计算机,这样浪费了时间我的意思是:
     用select * from Student where 系别=计算机打开表
    {
      。
      //想在这里实现select * from (select * from Student where 系别=计算机) where no=98001,最好换个写法避免重复使用select * from Student where 系别=计算机
    }不知各位有没明白我的意思
      

  6.   

    估计就是字查询了SELECT * FORM (SELECT XXX FROM XXX WHERE XX=XX) WHERE XX= XX
      

  7.   

    看来大家还是不明白我的意思
    换种说法是:当打开了一个表后有没有方法给新生成的表起个名比如
    table=select * from Student where 系别=计算机
    然后在select * from table where 系别=no=98001