0

私はうまく動作するこのクエリを持っています

    $query = "SELECT 
        beva_post.*, 
        CONVERT_TZ(beva_post.date_published, '-00:00', '+00:00') as moment, 
        beva_rubrique.titre_en, 
        beva_user.image_user   
        FROM beva_post 
        LEFT JOIN beva_user 
            ON beva_user.id_user = beva_post.id_user 
        LEFT JOIN beva_rubrique 
            ON beva_rubrique.id_rubrique = beva_post.id_rubrique 
        LEFT JOIN beva_post_like 
            ON beva_post_like.id_post = beva_post.id_post 
        WHERE beva_post.id_user != '' 
        AND beva_post.flag = 'true' ";
$query .= "ORDER BY beva_post.id_post DESC ";
$query .= "LIMIT 50";

しかし、このクエリを id_post DESC ではなく、テーブル beva_post_like で id_user (DESC) によるライクが最も多い id_post で注文したいと思います。

beva_post_like テーブルは次のようになります。

    +-------------+--------------+
    | id_post     | id_user      |
    +-------------+--------------+
    | 1           | 20           |
    | 1           | 11           |
    | 1           | 10           |
    | 2           | 20           |
    | 2           | 50           |
    | 1           | 15           |
    +-------------+--------------+

LEFT JOIN beva_post_like で GROUP BY を試してみましたが、うまくいきません!

さらにクエリを使用する必要がありますか?

ご協力いただきありがとうございます...

クリス

あなたの答えの後、私はこれをしましたが、最後に「いいね」が付いた投稿がまだいくつかあります

    $query = "SELECT 
        beva_post.*, 
        COUNT(beva_post.id_post) as cpt, 
        CONVERT_TZ(beva_post.date_published, '-00:00', '+00:00') as moment, 
        beva_rubrique.titre_en, 
        beva_user.image_user  
        FROM beva_post 
        LEFT JOIN beva_user 
            ON beva_user.id_user = beva_post.id_user 
        LEFT JOIN beva_rubrique 
            ON beva_rubrique.id_rubrique = beva_post.id_rubrique 
        LEFT JOIN beva_post_like 
            ON beva_post_like.id_post = beva_post.id_post 
        WHERE beva_post.id_user != '' 
        AND beva_post.flag = 'true' ";
$query .= "GROUP BY beva_post.id_post ";
$query .= "ORDER BY cpt DESC ";
$query .= "LIMIT 50";
4

1 に答える 1

1

投稿をいいねしたユーザーの数で並べ替えたいですか? その場合はGROUP BY id_post、 に a を追加し、COUNT(id_user)これSELECTに ORDER BY DESC を追加できますCOUNT(id_user)

私があなたの質問を誤解している場合、ORDER BY の目標をより正確に説明できますか?

于 2013-07-30T16:16:52.307 に答える