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

MySQLの複雑なCOUNTクエリ

    データに「アップローダークレジット」を追加するというX-Zeroの提案は、クエリを単純に保つための最良の方法です。それが不可能な場合は、userprofile_videoinfoとuserprofile_videocreditを内部結合して、重複を簡単に排除できるようにします。

    SELECT u.id, u.full_name, COUNT(DISTINCT v.video_id) as credit_count
    FROM userprofile_userprofile u
    LEFT JOIN (SELECT vi.video_id, vi.uploaded_by_id, vc.profile_id as credited_to_id
        FROM userprofile_videoinfo vi
        JOIN userprofile_videocredit vc ON vi.id = vc.video_id
        ) v ON u.id = v.uploaded_by_id OR u.id = v.credited_to_id
    GROUP BY u.id, u.full_name
    ORDER BY credit_count DESC
    

    サブクエリは、ビューとして作成すると便利な場合があります。



    1. PHP変数を使用してMySQLテーブルを作成します

    2. MySQL::変数内でSQLステートメントを実行する

    3. *アラート*WindowsUpdateは純粋なAccessアプリケーションを壊します–修正が利用可能です

    4. OracleSql開発者でExplainPlanを表示するにはどうすればよいですか?