--A 表:
LoginName Name Address
test1 test1 北京
test2 test2 上海
test3 test3 广州
test4 test4 重庆
--b 表:
LoginName ord1 ord2 ord3
test1 ord1_abc ord2_abc ord3_abc
test2 ord4_def ord5_def ord6_def
查询A表的数据的时候,根据b表中的ord1 ord2和ord3排序我打算用len(ord1+ord2+ord3)
进行排序
在条件查询的时候会出现重复的数据,不知道是什么情况,例如根据名字进行模糊查询的时候会出现重复的xxx

解决方案 »

  1.   

    SELECT A.* FROM A,B WHERE A.LoginName  =B.Name ORDER BY B.ord1,     B.ord2  ,  B.ord3
      

  2.   

    select a.* from A表 a,B表 b 
    where a.LoginName=b.LoginName order by b.ord1,b.ord2,b.ord3
      

  3.   

    那就A表left join B表,不过有可能b表为空。
      

  4.   


    可否写一下??
    很久没用过join了
      

  5.   

    色狼帮我看一下这样对不对,因为ord1,ord2,ord3里的数据的格式都有规则的
    所以就根据这三列的长度去排序在查询A表数据的时候,把这三列组合成新的一列,然后根据这个新的列去排序
      

  6.   


    select a.LoginName,a.Name,a.Address,(select len(ord1+ord2+ord3) from b where b.LoginName=a.LoginName) as lenOrd
    from a
    order by lenOrd
      

  7.   

    select a.*,b.* 
    from a表 a, left join b表 b
    on a.LoginName=b.LoginName 
    order by b.ord1,b.ord2,b.ord3