我試圖在'apst_mailings'上存儲我們發送給訂閱者的每封新聞稿的內容。每次我們嘗試將電子郵件發送給個人時,我們都會在apst_mailings_accuses中插入一行報告發送時間和狀態以及新信函的ID。我想列出新聞簡報並計算髮送的總數併成功發送。2在同一張桌子上的左外連接凍結服務器
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
我可能分裂我的查詢,但爲什麼它不工作的原因,我受不了。任何人都可以解釋嗎?
謝謝!
你想用查詢來實現什麼?爲什麼加入一張桌子兩次? – 2012-04-19 21:11:11
剛剛更新了我的問題。 – Nabab 2012-04-19 21:19:07