Nutzung
Always_join: [
view_name,
view_name,
...
]
}
Hierarchie
always_join |
Standardwert
KeineAkzeptiert
Eckige Klammern mit einer durch Kommas getrennten Liste von AnsichtsnamenSonderregeln
Sie müssen eine Ansicht mit dem explore verknüpfen, bevor Sie ihn in always_join verwenden können
|
Definition
always_join
erzwingt die Aufnahme eines oder mehrerer Joins in den von Looker generierten SQL-Code, auch wenn der Nutzer kein Feld aus dieser verknüpften Ansicht ausgewählt hat. Mehrere Joins können mithilfe einer durch Kommas getrennten Liste wie [view_name_a, view_name_b, etc]
erforderlich sein.
Wenn Looker SQL für eine Abfrage generiert, wird versucht, einen möglichst klaren SQL-Code zu erstellen. Dabei werden nur Joins verwendet, die für die vom Nutzer ausgewählten Felder erforderlich sind. Mit always_join
können Sie erzwingen, dass Joins unabhängig davon ausgeführt werden.
always_join
kann nützlich sein, wenn ein Join mit dem Parameter type
ausgeführt wird und der Join kein LEFT JOIN
ist. In einer solchen Situation kann der Join entscheidend sein, um die zurückgegebenen Zeilen korrekt einzuschränken.
Beispiele
member
muss immer mit event
verknüpft sein, auch wenn der Nutzer kein Feld von member
ausgewählt hat. Dadurch werden nur die von Mitgliedern erstellten Ereignisse berücksichtigt:
explore: event {
always_join: [member]
join: member {
sql_on: ${event.member_id} = ${member.id} ;;
type: inner
}
}
Achten Sie darauf, dass member
und payment
immer mit event
verknüpft sind, auch wenn der Nutzer kein Feld aus einer dieser Ansichten ausgewählt hat. Dadurch werden die Ergebnisse auf Ereignisse beschränkt, die von Mitgliedern erstellt wurden und bei denen das Mitglied bereits bezahlt hat:
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
}
}
Häufige Herausforderungen
Eine Ansicht muss mit einem explorativen Analysetool verknüpft werden, bevor darauf in always_join
verwiesen werden kann
Um eine Ansicht in always_join
platzieren zu können, muss sie mit Erkunden verbunden sein, wo always_join
verwendet wird. Das funktioniert beispielsweise nicht:
explore: event {
always_join: [member]
}
Die Ansicht member
wurde nicht mit event
verknüpft. Sie kann daher in always_join
nicht verwendet werden.
Wichtige Informationen
Verwenden Sie nach Möglichkeit keine Geschäftslogik in Joins.
Der Standardansatz von Looker besteht darin, nach Möglichkeit ein LEFT JOIN
zu verwenden. In den obigen Beispielen wird ein LEFT JOIN
vermieden, damit die Geschäftslogik innerhalb des Joins angewendet werden kann. In einem der Beispiele haben wir den Bereich „Erkunden“ erstellt, der nur die mit Mitgliedern verknüpften Ereignisse umfasst:
explore: event {
always_join: [member]
join: member {
sql_on: ${event.member_id} = ${member.id} ;;
type: inner
}
}
Die bevorzugte Methode zum Ausführen in Looker ist die Verwendung von LEFT JOIN
, um Ereignis- und Mitgliederdaten einfach zusammenzuhängen:
explore: event {
join: member {
sql_on: ${event.member_id} = ${member.id} ;;
}
}
Anschließend erstellen Sie eine Dimension, für die Sie „Ja“ oder „Nein“ festlegen können, um nur die Mitgliederereignisse zu sehen:
dimension: is_member_event {
type: yesno
sql: ${member.id} IS NOT NULL ;;
}
So haben Nutzer die Flexibilität, sich alle oder nur Mitgliederereignisse anzusehen. Sie haben die Nutzer nicht dazu gezwungen, sich nur die Mitgliederereignisse über den Join anzusehen.