我有两个表T1(aid,aname),T2(bid,bname)
aid与bid关联,aid不会重复相同数据,bid可以重复相同数据.
 我现在T1数据如下
(1,'a')
(3,'b')
(10,'c')
 我现在T2数据如下
(1,'aa')
(1,'aa')
(3,'b')
(10,'c')
(10,'c')
---------------------------------------
我要求数据T1的aid数据从1顺序排序,也就是1,2,3.
那么T2对应的数据bid也要变成1,2,3,也就是T2表的数据如下 
(1,'aa')
(1,'aa')
(2,'b')
(3,'c')
(3,'c')

解决方案 »

  1.   

    不是很清楚你的要求,T2里面的(2,'b')是哪来的?然后你order by第一列应该就是你要的顺序啊?还有什么问题吗?
      

  2.   

    select t1.*,t2.* from t1,t2 where t1.aid=t2.bid
    order by t1.aid,t2.bid
      

  3.   


    其实不必要去管T2的bname的数据,只需要
    T1的aid和T2的bid数据能重新关联上就可以了
      

  4.   

    看看是不是要这个:CREATE TABLE t1 (id int ,NAME varchar(10))
    INSERT INTO t1 
    SELECT 1,'a'
    UNION ALL 
    SELECT 3,'b'
    UNION ALL 
    SELECT 10,'c'CREATE TABLE t2(id int ,NAME varchar(10))
    INSERT INTO t2
    SELECT 1,'aa'
    UNION ALL 
    SELECT 1,'aa'
    UNION ALL 
    SELECT 3,'b'
    UNION ALL 
    SELECT 10,'c'
    UNION ALL 
    SELECT 10,'c'
    SELECT * FROM t1 a LEFT JOIN t2 b ON A.id=b.id
    ORDER BY a.id
    /*
    id          NAME       id          NAME
    ----------- ---------- ----------- ----------
    1           a          1           aa
    1           a          1           aa
    3           b          3           b
    10          c          10          c
    10          c          10          c(5 行受影响)
    */
      

  5.   


    create table T1(aid int, aname varchar(5))
    create table T2(bid int, bname varchar(5))insert into T1
    values(1,'a'),(3,'b'),(10,'c')insert into T2
    values(1,'aa'),(1,'aa'),(3,'b'),(10,'c'),(10,'c')
    with t as
    ( select aid,aname,
      row_number() over(order by aid) rn from t1
    )
    update b
    set b.bid=a.rn
    from T2 b
    inner join t a on b.bid=a.aid;with t as
    ( select aid,aname,
      row_number() over(order by aid) rn from T1
    )
    update a
    set a.aid=b.rn
    from T1 a
    inner join t b on a.aid=b.aid;select * from T1
    /*
    aid         aname
    ----------- -----
    1           a
    2           b
    3           c(3 row(s) affected)
    */select * from T2
    /*
    bid         bname
    ----------- -----
    1           aa
    1           aa
    2           b
    3           c
    3           c(5 row(s) affected)
    */
      

  6.   

    结果要变成
    T1数据
    id          NAME       
    ----------- ----------
    1           a         
    2           b          
    3           c   
    -------------------------------     
    T2数据
    id          NAME       
    ----------- ----------
    1           aa         
    1           aa          
    2           b   
    3           c 
    3           c