表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 语文
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,第二个表是表2
我的意思是:表二的数据按学科分组排序后按表一的学科顺序排列,
实际上表二中还有 其它1,其它2,其它3等等的学科,这些学科在表一中是没有的,希望表一中没有的学科显示在最前或是最后,
select a.学科,a.姓名 FROM 表二 a ,表一 b where (a.学科=b.学科) Order by a.id
可以,但丢失了表一中没有的学科
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
你的方案可以显示,但不能编辑,可能不得不在表一中添加一个‘其它’的学科