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

左結合を使用したMySQL集計関数

    notesのフィルターがあるので WHEREのテーブル JOININNER JOINのように機能しています 、JOINに移動します 状態:

    SELECT
      jobs.*,
      MAX(notes.`timestamp`) AS complete_date
    FROM jobs
    LEFT JOIN notes 
      ON (jobs.id=notes.job_id)
      AND (notes.type="complete" OR notes.type IS NULL)
    WHERE (jobs.status="complete" OR jobs.status="closed")
    GROUP BY jobs.id
    ORDER BY complete_date ASC;
    

    これはサブクエリを使用して実行することもできるため、サブクエリ内でメモフィルタを適用します。

    SELECT
      jobs.*,
      n.complete_date
    FROM jobs
    LEFT JOIN
    (
        select job_id, MAX(`timestamp`) AS complete_date
        from notes 
        where (type="complete" OR type IS NULL)
        group by job_id
    ) n
      ON (jobs.id=n.job_id)
    WHERE (jobs.status="complete" OR jobs.status="closed")
    ORDER BY complete_date ASC
    



    1. 画像はパスを使用してデータベースからフェッチしません

    2. mysql COUNT(*)とCOUNT(DISTINCT col)

    3. Oracleパッケージが無効になる状況は何ですか?

    4. PythonとDjangoOperationalError(2006、「MySQLサーバーがなくなりました」)