2011-12-13 36 views
2

我有一個MySQL查詢像這樣:SQL命令的變量內聲明

SELECT * 
FROM backstage 
WHERE backstage_id IN (
    SELECT backstage_id 
    FROM visitor_counter 
    WHERE backstage_id !=0 
    GROUP BY backstage_id 
    ORDER BY COUNT(DISTINCT (ip_address)) DESC 
) 
LIMIT 0 , 100 

我得到我想要的結果,但我想通過COUNT(DISTINCT (ip_address)) DESC作爲內部問題確實來訂購吧。

有關如何做到這一點的任何提示?

回答

2

給這個一去,看看它給你後,你在做什麼:

select bs.* 
from backstage bs 
inner join 
(
select backstage_id,count(distinct ip_address) as distIpCount 
from visitor_counter 
where backstage_id !=0 
group by backstage_id 
) vc on vc.backstage_id = bs.backstage_id 
order by vc.distIpCount desc 
limit 0,100; 
+0

非常感謝!很棒! –