2012-01-18 10 views
2
SELECT id,name,SUM(`lsa`) AS lst FROM 
    table_a AS sn, 
    table_b AS fb 
WHERE sn.uid=fb.uid 
    AND COUNT(`lsa`)=6 
GROUP BY sn.uid 
ORDER BY SUM(`lsa`) 

私はこのようなクエリを持っています。明らかにAND COUNT(lsa)=6ビットは有効な構文ではありません。私はかなり失われています。GROUPされた行の数を計算します。

私は何を達成したいと、そのUIDの6つの項目がすなわちその「グループ」で、そこにあるだけ場合uidでグループ化されたlsaの合計によって順序付けられたリスト、、です。私はどうしたらいいのですか?

答えて

3

ので、代わりに

SELECT id, 
     name, 
     SUM(`lsa`) AS lst 
FROM table_a AS sn 
     JOIN table_b AS fb 
     ON sn.uid = fb.uid /*Using Explicit Join syntax*/ 
GROUP BY sn.uid,   /*And avoiding MySQL GROUP BY extension*/ 
      id, 
      name 
HAVING COUNT(`lsa`) = 6 
ORDER BY SUM(`lsa`) 

を使用WHERE、ではない骨材でフィルタする有効ですが、それはHAVING句に入る必要があります。

+0

「10分で回答を受け入れることができます」 –

関連する問題