私たちが購読者に送る各ニュースレターの内容を格納するテーブル 'apst_mailings'でクエリを実行しようとしています。電子メールを個人に送信しようとするたびに、apst_mailings_accusesに送信の時刻と状態、および新しいメールのIDを報告する行が挿入されます。私は、ニュースレターのリストを作成し、送信された合計と各自の送信に成功したものを数えたいと思います。2同じテーブルのLEFT OUTER JOINがサーバーをフリーズします
SELECT m.id AS code_mailing,
COUNT(a.adh_code) AS num, COUNT(b.adh_code) AS succes
FROM apst_mailings AS m
LEFT OUTER JOIN apst_mailings_accuses AS a
ON a.id_mailing = m.id
LEFT OUTER JOIN apst_mailings_accuses AS b
ON b.id_mailing = m.id
AND b.etat = 'succes'
GROUP BY m.id
そして、サーバーは永久にハングします。私は、それぞれが分離されたクエリに参加しようとしていると、それは問題なく働いた:
// Counts the email sent per mailing
SELECT m.id AS code_mailing,
COUNT(a.adh_code) AS num
FROM apst_mailings AS m
LEFT OUTER JOIN apst_mailings_accuses AS a
ON a.id_mailing = m.id
GROUP BY m.id
SELECT m.id AS code_mailing,
COUNT(b.adh_code) AS succes
FROM apst_mailings AS m
LEFT OUTER JOIN apst_mailings_accuses AS b
ON b.id_mailing = m.id
AND b.etat = 'succes'
GROUP BY m.id
私は、クエリを分割することができますが、それは動作しない理由は、本当に私を悩まします。誰も説明していただけますか?
ありがとうございます!
クエリで何を達成しようとしていますか?なぜ1つのテーブルを2回結合するのですか? –
私の質問を更新しました。 – Nabab