2016-04-12 10 views
1

EDIT:コードが意図したとおりに動作しているようです。それは単なるデバッグの問題でした。邪魔してごめんなさい!HAVING文のMysql FOUND_ROWS

私はいくつかのフィルタとJOINを含む大規模なクエリを実行しているので、クエリを2回実行していた結果もページングしています。

SQL_CALC_FOUND_ROWSを使用してクエリを2回実行しないようにしましたが、HAVINGステートメントでフィルタリングしているので、「ステートメントあり」の前にフィルタされていない合計が表示されます。私はHAVINGを実行する必要があります。なぜなら、元のクエリは数え切れないほどのものに頼っているからです。私はひどいですが、今はDB構造を変更する権限がありません。私のSQLの

アイデア:

SELECT SQL_CALC_FOUND_ROWS u.id as user_id, 
       u.full_name as full_name, 
       u.email as email, 
       COUNT(stuff) as logs, 
    FROM 
     user u 
     LEFT JOIN 
     profile u_p on u_p.user_id = u.id 
     GROUP BY u.id 
     HAVING logs>5 
    LIMIT 15 

私は新しいSQLクエリ SELECT FOUND_ROWS() as total_rowsを実行したとき、私はu.id ROWSなくフィルタ1の全額を取得します。 (HAVING文でのみ発生し、WHEREの句ではない)

+0

ここでLEFT JOINから何を得ようとしていますか? –

+0

実際のSQLのサンプルSQLでした。私は選択されたより多くの行を、プロファイルからいくつか選択しました。とにかくそれは私の悪かったです。コードは意図したとおりに実行されていた – user982962

+1

あなたは質問プロパティを書くことを気にすることができず、人々はあなたの問題を理解して助けてくれることを期待しています。あなたはすべての人々の中で最悪です! – ant

答えて

0

コードが意図したとおりに動作しているようです。それは単なるデバッグの問題でした。邪魔してごめんなさい!

関連する問題