07-09-2009, 01:38
|
|
|
חבר מתאריך: 28.05.07
הודעות: 5
|
|
שאילתא עם שימוש בפונקציות מחזירה טבלה שגויה
אשמח לעזרתכם בנושא הבא ,
בקצרה : ירשתי בסיס נתונים מפרוייקט עבר בו נעשה ניסיון ל"הצפין" את הקשרים בין הטבלאות השונות . על ידי שימוש בפונקציות (Stored Procedures) המשתמשות באלגוריתמי הזזה וMD5 .
הפונקציות הן EncodeVol,EncodeVolData , התוכן שלהן לא רלוואנטי לבעיה , אך אפשר להניח שיש התאמה חח"ע ועל .
טבלאת users - טבלה המכילה שני ערכים סידוריים המצביעים לשני טבלאות אחרות (המצביעים מומרים ע"פ הפונקציות לעיל) .
השאילתא היא :
קוד:
SELECT * FROM users AS u LEFT JOIN personal_commitment_organizations AS pco ON(u.Code1=pco.organization_Code1) JOIN organizations AS org ON(EncodeVol(u.Code1)=org.DetailCode) JOIN organizationsdata AS orgd ON(EncodeVolData(u.Code2)=orgd.DetailCode);
יש להוסיף שניסיתי לכתוב את אותה השאילתא גם ללא איחודים ועם מכפלה קרטזית ופסוקית WHERE , אך זה הניב אותן תוצאות .
כמובן שבדקתי את המכפלה הקרטזית גם ללא פסוקית WHERE וראיתי כי התוצאה צריכה להיות שונה . (השוואתי בעצמי לשם שינוי) .
אם זה מידע חיוני , חוזרת רק השורה האחרונה שעונה על תנאי האיחודים .
אשמח לתשובתכם .
טל
נערך לאחרונה ע"י ישראל K בתאריך 07-09-2009 בשעה 11:44.
|