sql >> データベース >  >> RDS >> Mysql

解決方法がmysqlクエリのGROUPBYエラーに含まれていません

    集約されていない各フィールドはグループ化する必要があります。

    これは標準の動作であり、mysqlではONLY_FULL_GROUP_BYモードに依存します。
    このモードは、> =5.7でデフォルトで有効になっています。 。

    select posts.id, post.user_id, count(likings.id) as likes_count
    from posts
    left join likings on likings.post_id = posts.id and likings.isActive= 1
    group by posts.id, posts.user_id
    order by likes_count desc 
    limit 5
    

    または、aggregateすることもできます それ:

    select posts.id, MIN(post.user_id), count(likings.id) as likes_count
    from posts
    left join likings on likings.post_id = posts.id and likings.isActive= 1
    group by posts.id
    order by likes_count desc 
    limit 5
    

    他の方法-sql_modeを変更します :

    SET SESSION sql_mode = '';
    

    また、2つのクエリに分割できます:

    1. 集計IDと投稿IDを取得する
    2. 取得したIDを使用して投稿データを取得します(IN clauseを使用) )


    1. 1つのクエリで複数の列をカウントする

    2. MySqlCommandパラメータを使用するときにコマンド文字列を確認するにはどうすればよいですか?

    3. JPA EclipseLink DatabaseException:'テーブルfoo.SEQUENCEは存在しません'

    4. SQL Server2014CTP1用の新しいVMを準備します