לוגו אתר Fresh          
 
 
  אפשרות תפריט  ראשי     אפשרות תפריט  צ'אט     אפשרות תפריט  מבזקים     אפשרות תפריט  צור קשר     חץ שמאלה ‎print ‎"Hello World!"; if‎ ‎not rules.‎know ‎then rules.‎read(); חץ ימינה  

לך אחורה   לובי הפורומים > מחשבים > תכנות ובניית אתרים
שמור לעצמך קישור לדף זה באתרי שמירת קישורים חברתיים
תגובה
 
כלי אשכול חפש באשכול זה



  #1  
ישן 25-08-2012, 16:11
  traz297 traz297 אינו מחובר  
 
חבר מתאריך: 25.08.12
הודעות: 9
בעייה טריקית במיוחד... (INNER JOIN)

הי

במסגרת עבודתי נתקלתי בבעיה, יש לי 2 טבלאות:

טבלת לקוחות
CustomerID

CustomerName

1

John

2

Jenny

3

Lenny


טבלת מוצרים
CustomerID

ProductName

Price ($)

1

Triangle Hat

590

2

Round Hat

240

1

Rount cap

378



אני רוצה שאילתה שתחזיר לי, עבור כל לקוח מטבלת הלקוחות, את מספר הפעמים שמופיע אצלו מוצר שיש בשם המוצר את מילה Triangle (משולש). אני מעדיף לעשות את זה בעזרת שאילתה אחת. אך אפשרי גם עם שתיים.


הפתרון הכי קרוב שהגעתי אליו עד עכשיו: להוסיף לטבלת המוצרים עמודה שמראה האם מופיע בשם המוצר המילה משולש (ערך בוליאני), ואז לעשות INNER JOIN. הבעייה שאפשר לעשות רק ORDER BY ולא GROUP BY.


לצערי היום אני משתמש ב-4 שאילתות שיוצרות טבלה חדשה ועושות בלגן שלם. הטבלאות כוללות עשרות מיליוני רשומות כך שזה ממש לא המצב האידאלי.
אודה לעזרה...
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #14  
ישן 26-08-2012, 14:33
  traz297 traz297 אינו מחובר  
 
חבר מתאריך: 25.08.12
הודעות: 9
בתגובה להודעה מספר 13 שנכתבה על ידי borsood שמתחילה ב "אין סיבה ש OUTER JOIN לא..."

שימו לב למה שכתוב בשאלה שלי

"עבור כל לקוח מטבלת הלקוחות, את מספר הפעמים שמופיע אצלו מוצר שיש בשם המוצר את מילה Triangle (משולש)."
כלומר- גם עבור לקוחות שאין אצלם מוצר שמופיעה בו המילה
Triangle. עבור לקוחות אלה צריך להיות 0 או NULL.

הפתרונות שניתנו עד עכשיו לא נותנים מענה כיוון ש- ב COUNT נספרים רק הלקוחות שיש להם את המילה לפחות במוצר אחד, ולכן רק הם מופיעים בתוצאה של השאילתה.
ב- OUTER JOIN + GROUP BY נותן אותו פיתרון של INNER JOIN- מופיעים רק הלקוחות שנכללים בתנאי שמופיעה אצלם המילה משולש- ולכן למעשה זו אותה תוצאה כמו ה- COUNT.
OUTER JOIN אמנם יכתוב ליד כל לקוח האם מופיע במוצר הספציפי הזה משולש או לא (NULL), אבל יחזיר חלק מהלקוחות פעמיים.

אני לא סתם שואל את השאלות האלה, ניסיתי כל פיתרון שנכתב כאן וזה פשוט לא עובד...
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
תגובה

כלי אשכול חפש באשכול זה
חפש באשכול זה:

חיפוש מתקדם
מצבי תצוגה דרג אשכול זה
דרג אשכול זה:

מזער את תיבת המידע אפשרויות משלוח הודעות
אתה לא יכול לפתוח אשכולות חדשים
אתה לא יכול להגיב לאשכולות
אתה לא יכול לצרף קבצים
אתה לא יכול לערוך את ההודעות שלך

קוד vB פעיל
קוד [IMG] פעיל
קוד HTML כבוי
מעבר לפורום



כל הזמנים המוצגים בדף זה הם לפי איזור זמן GMT +2. השעה כעת היא 08:53

הדף נוצר ב 0.09 שניות עם 10 שאילתות

הפורום מבוסס על vBulletin, גירסא 3.0.6
כל הזכויות לתוכנת הפורומים שמורות © 2024 - 2000 לחברת Jelsoft Enterprises.
כל הזכויות שמורות ל Fresh.co.il ©

צור קשר | תקנון האתר