コード:
この質問は、過去にここに掲載されている場合、私はお詫び申し上げます。私はここに投稿する前に、私は常にいくつかの研究を行います。
私は、格納された電子メールのデータベースを持っています。各電子メールはとても例えば電子メール[email protected]は4つの結果を持っている可能性があり、複数の行を持っています。結果は異なっている唯一のものは、ステータス列です。ステータス値は、「処理」することができ、「オープン」、「配信」、「クリック」。
私は、自分の状態の最高の「ID」とのメールを表示することができWANNA。
ここに私の現在のテーブルがあります
私はこのクエリを試してみたが、それは単にテーブル全体で最高の「ID」を持つ唯一の1つの電子メールを返します。
SELECT email, status FROM sendgrid WHERE template_sent_id = '19454767' ORDER BY id DESC LIMIT 0, 1
ゴードン・リノフ:
一つの方法は、相関サブクエリです。
SELECT sg.email, sg.status
FROM sendgrid sg
WHERE sg.template_sent_id = 19454767 AND
sg.timestamp = (SELECT MAX(sg2.timestamp)
FROM sendgrid sg2
WHERE sg2.template_sent_id = sg.template_sent_id AND
sg2.email = sg.email
);
パフォーマンスを得るために、あなたがしたいとのインデックスsendgrid(template_send_id, email, timestamp)
。