2011-09-01 112 views
1

假設用戶表有200條記錄。將變量傳遞給嵌套查詢

低於一定的查詢工作worker_id 例如worker_id 2738:

SELECT SUM(something) AS T_BOIN 
FROM (
SELECT SUM(A.boin) AS something 
FROM hall A JOIN user B ON A.who=B.id 
WHERE B.worker_id = 2738 
ORDER BY total_per_user DESC LIMIT 10 
) AS mastertbl 

我想執行200個獨立worker_ids這樣上面的查詢:

SELECT @TT:=BK.worker_id AS TID, 
(SELECT SUM(something) AS T_BOIN 
FROM (
    SELECT SUM(A.boin) AS something 
    FROM hall A 
    JOIN user B ON A.who=B.id 
    WHERE B.worker_id = @TT 
    ORDER BY total_per_user DESC 
    LIMIT 10) AS mastertbl 
) AS TEAM 
FROM user BK 
INNER JOIN (SELECT @TT :=0) AS WESS 
GROUP BY TID 

但@ tt超出範圍。

在此先感謝。

回答

0

我想這可能爲你工作...

SELECT worker_id, SUM(something) AS T_BOIN 
FROM (
    SELECT b.worker_id, SUM(A.boin) AS something, if(@wid = b.worker_id, @cnt:[email protected]+1, @cnt:=1 AND @wid := b.worker_id) cnt 
    FROM hall A 
    JOIN user B ON A.who=B.id 
    ORDER BY b.worker_id, total_per_user DESC 
) AS mastertbl 
WHERE mastertbl.cnt <= 10 
GROUP BY worker_id; 
+0

謝謝你,但它不工作:/ –