select distinct test.id,test.name,test.test1_id,(test.test1_id+test1.id) as test1_desc,test.test2_id,(test.test2_id+test1.id) as test2_desc from test,test1,test2 where test.test1_id=test1.id or test.test2_id=test2.id or test.id=true用这个试试.

解决方案 »

  1.   

    --MsSQL下可以如下,dbf你试一下
    Select T.id,T.Name,T.test1_id,T1.desc as test1_desc,T2.id as test2_id,T2.desc as test2_desc
    from Test T,test1 As T1,test2 as T2
    Where T.test1_id*=T1.id And T.Test2_id*=T2.id
      

  2.   

    wzs 的方法不行
    9527 的方法,旧式的ANSI SQL语言语法,行不通
    还有没有谁给些提示?
      

  3.   

    这个问题比较简单,请看:
    select t.id,t.name,t.test1_id,t1.desc,t.test2_id,t2.desc
    from test.dbf t left join test1.dbf t1 on t.test1_id=t1.id
         left join test2.dbf t2 on t.test2_id=t2.id
    order by t.id
      

  4.   

    非常感谢stockwalker的回答!
    另外我想问一下,假如test1又是一个索引表,又需要去另一个表中查找数据呢?把上面的Test1表改为:
    Test1.dbf
        id    desc    test4_id
        101  101memo  402
        103  103memo  空增加一个test4表
    test4.dbf
        id      desc
       401    dfdsdfsd
       402    sdasdgasdf
       403    fhgfjgh那么这条SQL语句又如何写呢?
      

  5.   

    也就是说,用ANSI SQL语式如何写多个表关系的SQL语句?
    刚开始时,我也是用left join的语法,就是不知多个表如何写这SQL语句,另外有这方面的网站或 e book 不妨copy几个Address给我。
    Thanks!