c和z是别名,在同一层的select中是不可见的,有正名为啥不用?不过没看明白b和y是啥?

解决方案 »

  1.   

    如果兩個數据表沒有關聯字段的話就不行﹐要是有應該是select c.*,z.* from a c,x z ; 
    c 和 z 作為a,x的別名﹐你的b,y是什么意思啊
      

  2.   

    a,x 是不同的数据库
    b,y是数据库中的表。我说在一个Tqruery 中能不能写这样的SQl
      select c.*,z.* from "a.b" c,"x.y" z 
      

  3.   

    to: arthurwww(青萍)
       如何解释呀。
      

  4.   

    to sonhong(济盈不濡轨):
    呵呵,理解错你的意思了,不好意思。可以的,你给那个TQuery控件指定一个Standard类型的Database,比如Paradox的库,
    然后把SQL写成这样——
    select c.*, z.* from :a:b c, :x:y z
    ——试试看。
      

  5.   

     to dq(独轻)
       不可以的。因为BDE别名,TQuery 的 DataBaseName 不能是两个数据库别名。
     
     只能用两个TDatabase来实现。从一个读出放到一个临时地方,再写入另一个数据库中。
      

  6.   

    to sonhong(济盈不濡轨):
    你没试吧?
    我没说要在TQuery.DataBaseName里放两个数据库名啊。
    比如你可以把它设成Delphi自带的Demo库:DBDEMOS,然后在SQL里别的数据库别名前加冒号。
    你用SQL Explorer试试看很快就知道行不行了。
      

  7.   

    忘了一点,表名前也要加冒号,即指定某一个表时要写成——:数据库BDE别名:表名
      

  8.   

    一个Query只能属于一个DataBase,你的作法看是在什么数据库上了,如果你实在DB2/400上是可以的,如果你是在SQL Server上就不行了。
      

  9.   

    谢谢 dq(独轻)select a.*,b.* from 
      :x:y a,
      :dbdemos:items b where a.dirid = 77
    and b.itemno = 1在SQL Explorer中  x是Oracle数据库。不能解释。在TQuery中也不能解释同是paradox类型的两个数据库。