2012-02-19 19 views
0

我有2個表。我按desc格式獲得結果。 現在我想以相同的順序格式顯示信息。但我無法做到這一點。在從mysql中嵌套查詢得到結果後在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); 

內部查詢被命令下降,但與外部查詢中使用時,該命令將丟失。

+1

該查詢應該返回一個錯誤,用於將'table1.field'與'table2'中的所有列進行比較... – 2012-02-19 21:58:34

+1

您確定這是您的實際工作查詢嗎? '(select * from'中的字段看起來很奇怪, – 2012-02-19 22:00:06

+0

是的,但我想出了答案,謝謝。 – CamelCase 2012-03-03 08:10:39

回答

0

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