日期:2014-05-16  浏览次数:20658 次

求助一个单表数据排序的sql语句写法
表结构如下
id nid name
1 0 aaa
2 0 bbb
3 1 ccc
4 2 ddd
5 1 eee
6 1 fff

数据有2类,一类是nid为0的大类,一类nid存放某个大类的id的小类
现在我想按这样顺序查找:小类数据紧接着在大类后面,例如上面查找结果显示为
1 0 aaa
3 1 ccc
5 1 eee
6 1 fff
2 0 bbb
3 2 ddd

这个sql应该怎样写啊?

------解决方案--------------------
SQL code
select a.*
from 表结构如下 a left  join 表结构如下 b on  a.nid=b.id
order by IFNULL(b.id,a.id) , a.id

------解决方案--------------------


SELECT * FROM TTY A where nid=0
union all
select nid,id,name from tty where nid>0
order by id,nid