逻辑:
1)当id& id1匹配,我想对DESC进行排序(例如,id = 9是最高分= 400,id = 1是第二高分= 150)
2)在匹配行下面,我希望所有id1与由id ASC排序的匹配相同(例如,id = 10& id1 = 9将直接位于id = 9& id1 = 9行之下)
**注意:id是唯一且自动递增的
原始数据:
id id1 score
1 1 150
2 1 70
3 3 80
4 3 250
5 3 800
6 3 560
7 7 100
8 7 195
9 9 400
10 9 35
期望的输出:
id id1 score
9 9 400
10 9 35
1 1 150
2 1 70
7 7 100
8 7 195
3 3 80
4 3 250
5 3 800
6 3 560
答案 0 :(得分:1)
这是您的查询:
select
t1.id,
t1.id1,
t1.score
from
myTable t1
left join myTable t2 on t1.id1 = t2.id and t2.id = t2.id1
order by
t2.score desc,
t1.id=t1.id1 desc,
t1.id asc
<强> sql-fiddle 强>