[英]Order in desc after getting result from a nested query in mysql
我有2张桌子。 我按desc格式按顺序得到结果。 现在,我要以相同的订单格式显示信息。 但我无法做到这一点。
select *
from table1
where field in (select *
from table2
where StartDate > '2011-11-01'
AND StartDate < '2011-11-30'
group by field1
order by count(field1) desc );
内部查询按降序排列,但与外部查询一起使用时,该顺序丢失。
一个in
子句不保留顺序,我很惊讶MySQL甚至允许它:)
一种解决方案是在子查询中计算计数,然后使用该计数进行排序:
select *
from table1 t1
join (
select field1
, count(field1) as Field1Count
from table2
where StartDate > '2011-11-01'
and StartDate < '2011-11-30'
group by field1
) t2
on t1.field1 = t2.field1
order by
t2.Field1Count desc
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.