סוג

בדף הזה יש התייחסות לפרמטר 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 (ערך ברירת המחדל)

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

full_outer

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

inner

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

cross

סוג ה-join‏ 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.