immer_beitreten

Nutzung

Explore: Explore-Name {
Always_join: [
view_name,
view_name,

...
]
}
Hierarchie
always_join
Standardwert
Keine

Akzeptiert
Eckige Klammern mit einer durch Kommas getrennten Liste von Ansichtsnamen

Sonderregeln
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.