View Single Post
ישן 05-02-16, 12:22   # 9
while1
חבר חדש
 
מיני פרופיל
תאריך הצטרפות: Jan 2015
הודעות: 34
Send a message via Skype™ to while1

while1 לא מחובר  

אוקיי,
עשיתי אתמול טעות בגלל השעה המאוחרת. מתנצל.

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`
וכדי להחזיר רק משתמש אחד, תוסיף בסוף:

קוד:
WHERE `UserId` = 1

מקווה שעכשיו זה יעבוד נכון ואין טעויות.
  Reply With Quote