比如我有张表 里面的数据为
ID    NAME    U-ID
123   AA      456
456   BB      678 
678   CC      0
999   DD      563
先要通过U-ID和ID匹配的 直到U-ID为0  ID 123为AA自己的ID号 U_ID345为对应的ID 然后就对应到 BB的ID了 通过BB的U_ID就得到CC了 CC CC的U-ID为0 就查询出
678   CC      0
以下是查出678   CC      0的语句:select * from TABLE1 a where not exists (select * from TABLE1 where a.[u_id]=id)但是要求提高 怎么才能在最后查询出来为U_id和id相关的所有数据   最后结果为
               123   AA      456
               456   BB      678 
               678   CC      0
请大家帮帮忙

解决方案 »

  1.   

    select * from TABLE1 a 
    where exists (select * from TABLE1 where a.[u_id]=id)
          or [U-ID]=0
    -- 这样不就可以了吗? 但
    -- 678,CC,0 这笔数据如何得来?
      

  2.   

    是啊, 但是可和老板的要求有点问题 他要的是所有U_id和id有联系的全部都要查出来 所以本人SQL一点点 后面就不知道怎么写了呀 不好意思啊
      

  3.   

    如果还有个数据比如 999 ‘FF’0他其实是不输入U-id和ID联系的 但是上面的语句还是会查出来 所以这次主要是问着个 没办法 老板的需求一直在变的 55555
      

  4.   

    WangZWang(阿来) 的查询方法是可以的
    实验了一下,这个方法也可以,呵呵,不知道是什么原理select  *
    from TABLE1 aa 
    where [ID] in (select [U-ID]
                from TABLE1)
    or [U-ID] IN (SELECT ([ID]) FROM TABLE1)
      

  5.   

    select  *
    from TABLE1
    where [ID] in (select [U-ID]
                from TABLE1)
    or [U-ID] IN (SELECT ([ID]) FROM TABLE1)汗,其实可以不用那个aa的