sql 语句如下:  with query1 do 
  begin
    close;
    sql.clear;
    sql.add('select tjzb from student');
    sql.add('where tjbh in (select zxbh from teacher)');
    prepare;
    open;
 end;
       由于数据表 student 和 teacher 分别属于不同的数据库,其中 student 在sql server 2000数据库里,而 teacher 在本地桌面数据库里,所以执行该sql语句时,嵌套语句无法完成。请问各位大虾,有什么办法能完成该查询功能,万分感谢!!  

解决方案 »

  1.   

    select tjzb from student where tjbh in (select zxbh from otherdb.dbo.zjbh)
      

  2.   

    异种数据库应该是不可以
    如果是同种数据库就可以
    你可以不用sql语句用查询结果在前台比较(比较笨的方法)
    或者这样
    把teacher表存在sql server 的临时表里再操作不就更简单了
      

  3.   

    你的SQL代码是对的 但是存在问题 你的SQL代码分解开来是:
    select tjzb from studentwhere tjbh in (select zxbh from teacher)当然不对了~!需要修改为:sql 语句如下:  with query1 do 
      begin
        close;
        sql.clear;
        sql.add('select tjzb from student');
        sql.add(' where tjbh in (select zxbh from teacher)');
        prepare;
        open;
     end;这样分解是:select tjzb from student where tjbh in (select zxbh from teacher)其实就是一个分隔符号 空格的问题!
      

  4.   

    我试过了,这样分解还是不行啊,我的SQL语句没问题,关键是异种数据库之间是否可以进行嵌套查询的问题,我没见过实例,书上也没说可以还是不可以,所以不知道到底可不可以。