表1:id  学科
1   语文
2   数学
3   外语表1:id  学科 姓名
1   语文  a
2   数学  b
3   外语  c
4   其它  d
5   外语  e
6   语文  f
7   其它  g
8   语文  i查询结果:语文  a
语文  f
语文  i
数学  b
外语  c
外语  e
其它  d
其它  g求语法,谢谢(表1不能添加数据)

解决方案 »

  1.   

    带id的那个表(表2),select 学科,姓名 from 表2 order by 学科
      

  2.   

    怎么两个表都叫表1,如果第一个表是表1,第二个表是表2select 学科,姓名 from 表2 order by 学科,id
      

  3.   

    抱歉,晚餐前太过匆忙,本人表述不清,做以下说明
    第一个表是表1,第二个表是表2
    我的意思是:表二的数据按学科分组排序后按表一的学科顺序排列,
    实际上表二中还有 其它1,其它2,其它3等等的学科,这些学科在表一中是没有的,希望表一中没有的学科显示在最前或是最后,
    select a.学科,a.姓名 FROM 表二 a ,表一 b where (a.学科=b.学科)  Order by a.id 
    可以,但丢失了表一中没有的学科
      

  4.   

    一条语句的话,这样:
    select * from 
      (select a.学科,a.姓名 FROM 表2 a ,表1 b where (a.学科=b.学科) Order by a.id) as X
    union all
    select * from
      (select c.学科,c.姓名 FROM 表2 c where c.学科 not in( select distinct d.学科 from 表1 d) order by c.学科) as Y
      

  5.   

    谢谢 jianke5555
    你的方案可以显示,但不能编辑,可能不得不在表一中添加一个‘其它’的学科
      

  6.   

    select 学科,姓名 from 表2 order by 学科,id