SQL类似于下面
select a.id,a.order,a.batchid from A a inner join B b on (a.batchid=b.batchid);
假设现在B有两条记录,它们的b.batchid分别是1、2。并且都能在A中找到匹配的记录,A中满足a.batchid=1有三条记录,满足a.batchid=2有4条记录。现在要求查询的记录按a.order升序,也就是满足a.batchid=1有三条记录升序,然后满足a.batchid=2有4条记录升序,注意同一个a.batchid多条记录的a.order是不同值的,不同的a.batchid记录a.order可以相同。下面给出个模拟结果,求sql
a.id-------a.order------a.batchid
 2 -------   1   -------  1
 5 -------   2   -------  1
10 -------   4   -------  1
 1 -------   1   -------  2
 4 -------   2   -------  2
 3 -------   8   -------  2
 7 -------   9   -------  2

解决方案 »

  1.   

    select a.id,a.order,a.batchid 
    from A inner join B on a.batchid=b.batchid
    order by a.batchid ,a.order
      

  2.   

    mysql> select * from a;
    +----+-------+---------+
    | id | order | batchid |
    +----+-------+---------+
    |  1 |     1 |       2 |
    |  2 |     1 |       1 |
    |  3 |     8 |       2 |
    |  4 |     2 |       2 |
    |  5 |     2 |       1 |
    |  7 |     9 |       2 |
    | 10 |     4 |       1 |
    +----+-------+---------+
    7 rows in set (0.00 sec)mysql> select * from b;
    +---------+
    | batchid |
    +---------+
    |       1 |
    |       2 |
    +---------+
    2 rows in set (0.00 sec)mysql> select a.id,a.order,a.batchid
        -> from A inner join B on a.batchid=b.batchid
        -> order by a.batchid ,a.order;
    +----+-------+---------+
    | id | order | batchid |
    +----+-------+---------+
    |  2 |     1 |       1 |
    |  5 |     2 |       1 |
    | 10 |     4 |       1 |
    |  1 |     1 |       2 |
    |  4 |     2 |       2 |
    |  3 |     8 |       2 |
    |  7 |     9 |       2 |
    +----+-------+---------+
    7 rows in set (0.00 sec)mysql>
      

  3.   

    谢谢ACMAIN_CHM
    ...真晕啊,就这么简单,我咋想复杂了