always_join

Penggunaan


explore: explore_name {
  always_join: [
    view_name,
    view_name,
    ...
  ]
}
Hierarki
always_join
Nilai Default
Tidak ada

Menerima
Tanda kurung siku yang berisi daftar nama tampilan yang dipisahkan koma

Aturan Khusus
Anda harus menggabungkan tampilan ke explore sebelum menggunakannya di always_join

Definisi

always_join memaksa satu atau beberapa gabungan disertakan dalam SQL yang dihasilkan Looker, meskipun pengguna belum memilih kolom dari tampilan gabungan tersebut. Beberapa penggabungan dapat diperlukan dengan menggunakan daftar yang dipisahkan koma seperti [view_name_a, view_name_b, etc].

Saat membuat SQL untuk kueri, Looker akan mencoba membuat SQL yang paling bersih, dan hanya akan menggunakan gabungan yang diperlukan untuk kolom yang dipilih pengguna. Dengan menggunakan always_join, Anda dapat memaksa bergabung, apa pun yang terjadi.

always_join mungkin berguna saat gabungan dieksekusi dengan parameter type, dan gabungan bukan LEFT JOIN. Dalam situasi seperti itu, gabungan mungkin penting untuk membatasi baris yang ditampilkan dengan benar.

Contoh

Pastikan member selalu digabungkan ke event, meskipun pengguna tidak memilih kolom dari member. Hal ini membatasi hasil hanya untuk melihat acara yang dibuat anggota:

explore: event {
  always_join: [member]
  join: member {
    sql_on: ${event.member_id} = ${member.id} ;;
    type: inner
  }
}

Pastikan member dan payment selalu digabungkan ke event, meskipun pengguna tidak memilih kolom dari salah satu tampilan tersebut. Hal ini membatasi hasil hanya untuk melihat acara buatan anggota yang sudah dibayar oleh anggota:

explore: event {
  always_join: [member, payment]
  join: member {
    sql_on: ${event.member_id} = ${member.id} ;;
    type: inner
  }
  join: payment {
    sql_on: ${member.payment_id} = ${payment.id} ;;
    type: inner
  }
}

Tantangan umum

Tampilan harus digabungkan ke Eksplorasi sebelum dapat dirujuk di always_join

Untuk menempatkan tampilan ke always_join, pastikan tampilan tersebut digabungkan ke Eksplorasi tempat always_join digunakan. Misalnya, hal ini tidak akan berfungsi:

explore: event {
  always_join: [member]
}

Di sini, tampilan member belum digabungkan ke event, sehingga tidak tersedia untuk digunakan di always_join.

Yang perlu diketahui

Jangan terapkan logika bisnis dalam gabungan jika memungkinkan

Pendekatan standar Looker untuk menggabungkan adalah menggunakan LEFT JOIN jika memungkinkan. Pada contoh sebelumnya, kita menghindari LEFT JOIN sehingga logika bisnis dapat diterapkan dalam gabungan itu sendiri. Dalam salah satu contoh, kami membuat Eksplorasi yang hanya menyertakan peristiwa yang terkait dengan anggota:

explore: event {
  always_join: [member]
  join: member {
    sql_on: ${event.member_id} = ${member.id} ;;
    type: inner
  }
}

Cara yang lebih disukai untuk menjalankan hal ini di Looker adalah menggunakan LEFT JOIN untuk mendapatkan data peristiwa dan data anggota yang digabungkan dengan mudah:

explore: event {
  join: member {
    sql_on: ${event.member_id} = ${member.id} ;;
  }
}

Kemudian, Anda dapat membuat dimensi yang dapat disetel ke ya atau tidak, untuk melihat hanya peristiwa pelanggan:

dimension: is_member_event {
  type: yesno
  sql: ${member.id} IS NOT NULL ;;
}

Pendekatan ini memberi pengguna fleksibilitas untuk melihat semua acara, atau hanya acara anggota. Anda tidak memaksa pengguna untuk hanya melihat acara anggota melalui gabungan.

Jika Eksplorasi menyertakan always_join, nilai default full_suggestions akan beralih ke yes

Jika Eksplorasi menyertakan parameter always_join, nilai default full_suggestions akan beralih ke yes. Hal ini menyebabkan kueri saran berjalan menggunakan logika Jelajahi, yang berarti always_join akan diterapkan untuk mempersempit saran yang muncul, sehingga membatasi daftar saran hanya pada data yang seharusnya dapat diakses pengguna.

Jika Anda menetapkan full_suggestions ke no secara manual, kueri saran filter tidak akan berjalan.