sql (untuk gabungan)

Halaman ini merujuk pada parameter sql yang merupakan bagian dari gabungan.

sql juga dapat digunakan sebagai bagian dari kolom, seperti yang dijelaskan di halaman dokumentasi parameter sql (untuk kolom).

sql juga dapat digunakan sebagai bagian dari tabel turunan, seperti yang dijelaskan di halaman dokumentasi parameter sql (untuk tabel turunan).

Definisi

sql memungkinkan Anda menulis SQL mentah yang akan menggabungkan tampilan ke Eksplorasi. Saat ini, parameter ini hampir secara eksklusif digunakan untuk mengeksekusi RIGHT JOIN, yang tidak didukung oleh parameter type. Jika tidak, ada parameter yang lebih baik untuk digunakan dalam menjalankan penggabungan.

Sebelum Looker 3.10, sql adalah satu-satunya metode yang tersedia untuk menjalankan gabungan yang bukan merupakan LEFT JOIN. Misalnya, sebelum 3.10, Anda mungkin telah membuat INNER JOIN antara Eksplorasi event dan tampilan member seperti ini:

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

-

Mulai Looker 3.10, gabungan harus dieksekusi dengan sql_on atau foreign_key, sedangkan jenis gabungan harus ditentukan menggunakan type sebagai berikut:

# 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
  }
}

-

Kasus penggunaan umum kedua untuk sql adalah menggabungkan tabel dari dua database yang berbeda, yang disebut "Gabungan Terfederasi". Misalnya, Anda mungkin telah menulis LookML ini:

# 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 ;;
  }
}

-

Hal ini kini dapat dilakukan dengan menggunakan sql_table_name sebagai gantinya, seperti berikut:

# 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 ;;
}