סוג

בדף הזה יש התייחסות לפרמטר type שהוא חלק מצירוף.

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

אפשר להשתמש ב-type גם כחלק ממדד, כמו שמתואר בדף התיעוד סוגי מדדים.

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

אפשר להשתמש ב-type גם כחלק מרכיב בלוח הבקרה, כפי שמתואר בדף התיעוד של הפרמטר type (למרכזי שליטה של LookML).

Usage

explore: view_name {
  join: view_name_2 {
    type: inner
  }
}
היררכיה
type
ערך ברירת המחדל
left_outer

אישור
סוג של הצטרפות (cross, full_outer, inner, left_outer)

כללים מיוחדים
כשמשתמשים ב-type שאינו left_outer, מומלץ להשתמש ב-always_join כדי לוודא שהשורות שמתקבלות כוללות את הגבלות הצירוף

הגדרה

type מאפשר לכם לתאר את סוג הצירוף שאתם רוצים לבצע.

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

left_outer (ערך ברירת המחדל)

סוג הצירוף הנפוץ ביותר ב-Looker הוא left_outer (הסיבה לשימוש התדיר בו מתוארת בקטע סוגי צירוף left_outer הם בדרך כלל מועדפים בדף הזה). יכול להיות שאתם מכירים אותו מ-SQL כLEFT JOIN. כשמשתמשים באפשרות הזו type, כל השורות מ-Explore נכללות והנתונים מהתצוגה המצורפת מובאים, אם הם זמינים.

full_outer

סוג הצירוף full_outer – שמוכר לכם מ-SQL כ-full_outer – כולל את כל השורות מהתצוגה 'ניתוח' ומהתצוגה המצורפת, גם אם אין נתונים תואמים מהתצוגה השנייה.FULL OUTER JOIN

inner

inner סוג ההצטרפות — שאולי מוכר לכם מ-SQL כ-JOIN או כ-INNER JOIN — כולל רק שורות שיש להן רשומות תואמות גם בתצוגה של Explore וגם בתצוגה המצורפת.

cross

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

דוגמאות

אפשר להשתמש בFULL OUTER JOIN כדי להוסיף נתוני user לנתוני order, גם אם המשתמש לא ביצע הזמנה:

explore: order {
  join: user {
    sql_on: ${order.user_id} = ${user.id} ;;
    type: full_outer
  }
}

משתמשים ב-INNER JOIN כדי להוסיף נתוני user לנתוני event, ומגבילים את התוצאות רק לאירועים שנוצרו על ידי משתמש:

explore: event {
  join: user {
    sql_on: ${event.user_id} = ${user.id} ;;
    type: inner
  }
}

משתמשים ב-CROSS JOIN כדי ליצור את כל השילובים האפשריים של owner ו-property:

explore: property {
  join: owner {
    sql_on: 1 = 1 ;; # this sql_on condition is required in some dialects,
    type: cross      # but causes problems in other dialects, try adding or
  }                  # removing if you experience problems with cross joins
}

חשוב לדעת

בדרך כלל עדיף להשתמש בleft_outer סוגי צירוף

כשמתחילים ללמוד SQL ולהשתמש בה, הרבה אנשים מתמקדים בעיקר ב-JOIN, שנקראת מבחינה טכנית 'איחוד פנימי'. לכן, אפשר להניח שצריך להשתמש ב-type: inner_join ברוב המקרים. עם זאת, בדרך כלל Looker פועל בצורה הטובה ביותר עם type: left_outer, שדומה לשימוש ב-LEFT JOIN ב-SQL.

הסיבה לכך היא שהתצוגה שמשויכת ל-Explore (בניגוד לתצוגות שמצורפות ל-Explore) היא בדרך כלל הנתונים ה'עיקריים'. לדוגמה, יכול להיות שיש לכם ניתוח ב-Explore שמבוסס על מידע על אירועים. חלק מהאירועים עשויים להיווצר על ידי המערכת שלכם, וחלק מהאירועים עשויים להיווצר על ידי המשתמשים שלכם. אם מצטרפים אל user אל event באמצעות JOIN רגיל, אפשר לראות רק אירועים שנוצרו על ידי משתמש, ולא תהיה לכם גישה לאירועי מערכת. אם תשתמשו במקומו באירוע LEFT JOIN, תוכלו לראות את כל האירועים, גם אם לא משויך אליהם משתמש.

כדאי להשתמש ב-always_join אם חשוב להגביל את השורות

כש-Looker יוצר SQL לשאילתה, הוא מנסה ליצור את ה-SQL הכי נקי שאפשר, וישתמש רק בצירופים שנדרשים לשדות שהמשתמש בוחר. כשמשתמשים ב-type כדי להגדיר משהו שהוא לא LEFT JOIN, יכול להיות שתרצו שצירוף מסוים (או קבוצה של צירופים) תמיד יהיה חלק מהשאילתה, כדי לוודא שהשורות שמתקבלות כוללות את ההגבלות של הצירוף. כדי לעשות את זה, אפשר להשתמש בפרמטר always_join.