אוקיי,
עשיתי אתמול טעות בגלל השעה המאוחרת. מתנצל.
LEFT JOIN מחזיר כמה פעמים (כפילויות) את אותה השורה לפי מספר השורות שקיימות בטבלאות assets ו bills,
ובגלל זה הסיכום הכללי יוצא גבוה מדי ושגוי.
הפיתרון צריך להיות שונה, משהו כזה -
קוד:
SELECT `user`.`UserId` ,
(SELECT SUM(`Amount`) FROM `assets` WHERE `UserId` = `user`.`UserId`) as `a_sum`,
(SELECT SUM(`Amount`) FROM `bills` WHERE `UserId` = `user`.`UserId`) as `b_sum`
FROM `user`
וכדי להחזיר רק משתמש אחד, תוסיף בסוף:
מקווה שעכשיו זה יעבוד נכון ואין טעויות.