這是一箇舊線程,但我花了幾個小時試圖解決同一個問題。
我的查詢有兩個連接,一個過濾器和一個SUM函數。我不是SQL專家,但是這幫助我達到了期望的結果,即使連接的表沒有要求總和的行,也仍然顯示結果。
即使總和沒有任何結果,爲了顯示結果我的關鍵是GROUP BY。我仍然不是100%確定爲什麼。
這兩種類型的聯接是基於這篇文章的選擇 - MySQL Multiple Joins in one query?
SELECT registrations.reg_active, registrations.team_id, registrations.area_id, registrations.option_id, registrations.reg_fund_goal, registrations.reg_type, registrations.reg_fee_paid, registrations.reg_has_avatar, users.user_name, users.user_email, users.user_phone, users.user_zip, users.user_age, users.user_gender, users.user_active, SUM(IFNULL(donations.donation_amount,0)) as amt from registrations
INNER JOIN `users`
ON registrations.user_id = users.user_id
AND registrations.event_id = :event_id
LEFT OUTER JOIN `donations`
ON registrations.reg_id = donations.reg_id
GROUP BY donations.reg_id
ORDER BY users.user_name ASC
如果你的問題是可以理解的,你必須在幾分鐘內很多答案。請更好地解釋。 – fancyPants
@tombom對不起,但我不怎麼解釋得更好。我只是想要一個查詢,加上一個字段與左join.But一些記錄不在第二個表中具有相同的id.So,這不是完全聯合查詢。我通過小組解決了我的問題。 –