בולנט - דברים מיוחדים...

www.ASP.org.il

Israeli ASP Organization
ארגון ה-ASP הישראלי
מאמרים/דוגמאות קוד
קישורים
ספרות
חיפוש כללי:

חפש!
כלליHTMLASPASP.NETSQLמסדי נתוניםJavaScriptXML * XSLDHTML * CSSעיצוב וגרפיקהשרתיםComponentsפרסום ושיווקקידום אתריםקופירייטינגPHP
פרסומת
דף ראשי מדורים דרושים הרשמה למועדון אודותינו צור קשר
מיקום: מאמרים ודוגמאות קוד > SQL

הפקודה JOIN

כל הבעיות לא היו מתחילות אם היינו משתמשים כל הזמן רק בבסיס נתונים המושתת רק על טבלה אחת.  זה הזמן לערוך לכם  היכרות  עם  אחד המאפיינים המועילים ביותר של הפקודה SELECT של שפת  SQL ושאר שפות קרובות.. אנחנו מדברים על המאפיין , "Join". ההשמה של המאפיין קלה ליישום למעשה המאפיין "Join" מאחד טבלאות דטה-בייס קרובות בתוכנן, למשפחה אחת.

המאפיין "Join". מאפשר לך לקשר נתונים משתי טבלאות או יותר בשאילתת SELECT  אחת.

אפשר להשתמש במאפיין  "Join". בתוך שאילתת ה  SQL SELECT  אם יש צורך ביותר מטבלה אחת, גם  אחרי מילת המפתח  FROM .

לדוגמא:

בחר עמודות X  , Y .
מתוך טבלה1 , טבלה 2
איפה שהתנאים שלי מתקיימים.

 או בשפה שהמחשב מבין: 

SELECT "list-of-columns" FROM table1,table2 WHERE "search-condition(s)"

את הפקודה  "Join". ניתן להבין ביתר קלות עם הדוגמא שלהן מה היה קורה אלו היינו עובדים רק
עם טבלה אחת, ולא הייתה לנו האפשרות לקשר טבלאות.

לפעמים יוצא שאנחנו יוצרים " טבלה שטוחה" , נניח לדוגמא שיש לנו טבלה אשר עוקבת אחרי
קניות הלקוחות שלך בחנות. והטבלה נראית ככה :

id first last address city state zip date item Price

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

id first last address city state zip date item Price
10982 זלמן שושו 300 N. 1st Ave Yuma AZ 85002 032299 snowboard 45.00
10982 זלמן שושו 300 N. 1st Ave Yuma AZ 85002 082899 snow shovel 30.00
10982 זלמן שושו 300 N. 1st Ave Yuma AZ 85002 090199 gloves 90.00
10982 זלמן שושו 300 N. 1st Ave Yuma AZ 85002 090199 lantern 15.00

הדבר האידאלי במצב כזה שיהיו לנו שתי טבלאות.:

    • האחת שעוקבת אחרי הלקוחות שלנו.
      והשניה שעוקבת אחר הקניות של הלקוחות שלנו
  • לטבלה אחת נקרא : 
    "Customer_info"
     ובה יהיו הפרטים הבאים :

    customer_number firstname lastname address city state zip

    ולשניה נקרא:
    "Purchases"
    ובה יהיו הפרטים הבאים:

    customer_number date item price

    כעת כל קניה שהיא שתעשה בידי "לקוח חוזר" נצטרך לעדכן רק את הטבלה השניה של הקניות.
    בצורה כזו אנו משמטים הרבה מידע מיותר מבסיס הנותנים שלנו. כל מה שיש לנו כעת זה רק בסיס
    נתונים "נורמלי" .

    שים לב איך לכל טבלה יש עמודה זהה (customer_number) עמודה זו מכילה מספר ייחודי ללקוח
    אשר משמש לאיחוד(To Join) שתי הטבלאות. בואו נניח לדוגמא שאנו רוצים לבחור את השם הלקוח והמוצרים שהוא קנה. התחביר למקרה זה יהיה כזה:

    SELECT customer_info.firstname, customer_info.lastname, purchases.item FROM customer_info, purchases WHERE customer_info.customer_number = purchases.customer_number;

    הסוג הזה של המאפיין "Join". ידוע כ - "Inner Join" או כ - "Equijoin". וזה השיטה הנפוצה
    להשתמש במאפיין זה.

    שים לב שכל עמודה בשאילתה באה במבנה הבא: שם הטבלה , נקודה , ושם העמודה
    לא תמיד זה הכרחי אבל זה טוב להתרגל לכתוב בשיטה הזו למקרה
    ואתה רוצה לדעת איזו עמודה שייכת לאיזו טבלה. , התחביר הזה הכרחי מתי ששינם עמודות זהות בשתי טבלאות. ההמלצה
    היא לעבוד בתחביר מלא גם כאשר השמות אינם זהים.

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

    למרות שהדוגמא למעלה אמורה לעבוד.. הנה לפניכם התחביר של : ANSI SQL-92 עבור
    המאפיין Inner Join לאותה פעולה שתיארנו קודם.:

    SELECT customer_info.firstname, customer_info.lastname, purchases.item FROM customer_info INNER JOIN purchases ON customer_info.customer_number = purchases.customer_number; דוגמא נוספת לתחביר: SELECT employee_info.employeeid, employee_info.lastname, employee_sales.comissio FROM employee_info, employee_sales WHERE employee_info.employeeid = employee_sales.employeeid; הדוגמא הנ"ל בוחרת את העמודה employeeid וגם את העמודה lastname מתוך טבלת
    employee_info וגם את העמודה comission מתוך טבלת employee_sales עבור כל
    השורות בהן המספר של employeeid בשתי הטבלאות זהה.

    בהצלחה

    לחצו כאן למאמר המקורי



    התגובות שלכם

             
    01. 14/03/2006  N.H
    כל הכבוד! מידע שימושי כדי לחסוך בנתונים


    מחבר: מישל מקסברמת קושי: 1  ||  ציון: (8.1)כל הזכויות שמורות ל-IAO ©

    © כל הזכויות שמורות ל-IAO
    Lamparas y Mobiles  |   בולנט - Bolenat סטלן  |   מתכונים  |   הומו גאה  |   שמות  |   מיסטיקה וקבלה  |   Fisherman Pants סדרות טלויזיה טיסות זולות הודו נפאל תאילנד ביקורות משחקי מחשב Engineering Solutions עיצוב גרפי בפלאש לימוד צילומים תמונות ופיתוח קנוורט משאיות ישראל islands & beaches TV Series Guide חגי ישראל play online game clothes wear בניית אתר חנויות מחשבים ו-ציוד הקפי jewish holidays israeli games ישראל אופנה חולצות טישירט מעוצבות הריון לידה תינוק כוסיות ערומות קורס אימון אישי מידע על חברות רשתות ikesound car audio wholesale recetas comidas family and woman magic trip T Shirt mania Bolenat Searches Bolenat UK online video clips חיפושים מגזין מסטול ל-סטלן המצוי Hebrew learning online תכשיטים טבעות שרשראות קליפרים מצתים התפתחות הילד comparte light lamps תרופות / מחלות הדפסה על חולצות למכירה מוזיקה ישראלית תמונות סרטונים מצחיקים גידול צמחים פרחים ישראלים בעולם מתפנקים - ספא פינוק מושלם ייעוץ עסקים משפחתיים סרט קולנוע - קומדיה סאטירה כסף / שוק ההון לימוד שחיה בריכה מפסיקים לעשן סיגריות נשים אישה בחורה בחורות Bongs and Pipes Music Festivals Coca-Cola קססונית