‫sql (לשאילתות איחוד)

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

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

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

הגדרה

sql מאפשר לכם לכתוב את ה-SQL הגולמי שיצור שאילתת איחוד (join) של תצוגה עם Explore. כרגע הוא משמש כמעט באופן בלעדי להפעלת RIGHT JOIN, שלא נתמך על ידי הפרמטר type. אחרת, יש פרמטרים טובים יותר שאפשר להשתמש בהם כדי לבצע צירופים.

לפני Looker 3.10, ‏ sql הייתה השיטה היחידה שהייתה זמינה לביצוע צירוף שלא היה LEFT JOIN. לדוגמה, לפני גרסה 3.10 יכול להיות שיצרתם INNER JOIN בין event Explore לבין member תצוגה מפורטת באופן הבא:

explore: event {
  join: member {
    sql:
      INNER JOIN member
      ON member.id = event.member_id ;;
  }
}

-

החל מ-Looker 3.10, צריך להשתמש ב-sql_on או ב-foreign_key כדי להפעיל את הצירוף, ולהגדיר את סוג הצירוף באמצעות type באופן הבא:

# Option 1 Using sql_on
explore: event {
  join: member {
    sql_on: ${member.id} = ${event.member_id} ;;
    type: inner
  }
}

# Option 2 Using foreign_key
explore: event {
  join: member {
    foreign_key: member_id
    type: inner
  }
}

-

תרחיש השימוש הנפוץ השני ב-sql היה איחוד טבלאות משני מסדי נתונים שונים, שנקרא 'איחוד מאוחד'. לדוגמה, יכול להיות שכתבתם את קוד ה-LookML הזה:

# Model File
explore: view_1 {
  join: view_2 {
    sql:
      LEFT JOIN other_db.other_schema.view_2 AS view_2
      ON view_1.something = view_2.something ;;
  }
}

-

אפשר לעשות את זה באמצעות sql_table_name באופן הבא:

# Model File
explore: view_1 {
  join: view_2 {
    sql_on: ${view_1.something} = ${view_2.something} ;;
    type: left_outer
  }
}

# View File
view: view_2 {
  sql_table_name: other_db.other_schema.view_2 ;;
}