Typ

Auf dieser Seite wird auf den Parameter type verwiesen, der Teil eines Join ist.

type kann auch als Teil einer Dimension verwendet werden. Weitere Informationen finden Sie auf der Dokumentationsseite Dimensionen, Filter und Parametertypen.

type kann auch als Teil eines Messwerts verwendet werden, wie auf der Dokumentationsseite Messwerttypen beschrieben.

type kann auch als Teil eines Dashboardfilters verwendet werden. Weitere Informationen finden Sie auf der Dokumentationsseite Dashboard-Parameter.

type kann auch als Teil eines Dashboardelements verwendet werden. Dies wird auf der Dokumentationsseite zum Parameter type (für LookML-Dashboards) beschrieben.

Nutzung

explore: view_name {
  join: view_name_2 {
    type: inner
  }
}
Hierarchie
type
Standardwert
left_outer

Akzeptiert
Ein Join-Typ (cross, full_outer, inner, left_outer)

Besondere Regeln
Wenn Sie ein anderes type als left_outer verwenden, sollten Sie always_join verwenden, um sicherzustellen, dass die resultierenden Zeilen Ihre Join-Einschränkungen enthalten.

Definition

Mit type können Sie den Typ des Join beschreiben, den Sie ausführen möchten.

Die möglichen Werte für den Join-Typ werden in den folgenden Abschnitten dieser Seite beschrieben:

left_outer (der Standardwert)

Der häufigste Join-Typ in Looker ist left_outer. Der Grund für die häufige Verwendung wird auf dieser Seite im Abschnitt left_outer-Join-Typen werden in der Regel bevorzugt beschrieben. In SQL ist sie als LEFT JOIN bekannt. Wenn Sie type verwenden, werden alle Zeilen aus dem Explore-Bericht berücksichtigt und Daten aus der verknüpften Ansicht werden, sofern verfügbar, übernommen.

full_outer

Der Join-Typ full_outer, der in SQL als FULL OUTER JOIN bekannt ist, umfasst alle Zeilen aus dem Explore und der verknüpften Ansicht, auch wenn keine entsprechenden Daten aus der anderen Ansicht vorhanden sind.

inner

Der Join-Typ inner, den Sie möglicherweise aus SQL als JOIN oder INNER JOIN kennen, enthält nur Zeilen mit übereinstimmenden Datensätzen sowohl in der Ansicht „Erkunden“ als auch in der zusammengeführten Ansicht.

cross

Der Join-Typ cross, den Sie möglicherweise aus SQL als CROSS JOIN kennen, wird selten verwendet. Sie ist manchmal hilfreich für das Auffüllen mit Nullen oder die Matrixgenerierung. Für jede Kombination aus dem Explore und der verknüpften Ansicht wird eine Zeile erstellt.

Beispiele

Mit einem FULL OUTER JOIN können Sie Ihren order-Daten user-Daten hinzufügen, auch wenn der Nutzer keine Bestellung aufgegeben hat:

explore: order {
  join: user {
    sql_on: ${order.user_id} = ${user.id} ;;
    type: full_outer
  }
}

Mit INNER JOIN können Sie Ihren event-Daten user-Daten hinzufügen und die Ergebnisse auf die Ereignisse beschränken, die von einem Nutzer generiert wurden:

explore: event {
  join: user {
    sql_on: ${event.user_id} = ${user.id} ;;
    type: inner
  }
}

Verwenden Sie ein CROSS JOIN, um alle möglichen Kombinationen von owner und property zu generieren:

explore: property {
  join: owner {
    sql_on: 1 = 1 ;; # this sql_on condition is required in some dialects,
    type: cross      # but causes problems in other dialects, try adding or
  }                  # removing if you experience problems with cross joins
}

Wichtige Punkte

left_outer-Join-Typen werden in der Regel bevorzugt.

Beim Erlernen und Verwenden von SQL konzentrieren sich viele Menschen hauptsächlich auf JOIN, was technisch als „Inner Join“ bezeichnet wird. Aus diesem Grund könnte man annehmen, dass type: inner_join in den meisten Fällen verwendet werden sollte. Looker funktioniert jedoch in der Regel am besten mit type: left_outer, was der Verwendung von LEFT JOIN in SQL entspricht.

Der Grund dafür ist, dass die mit einem Explore verknüpfte Ansicht (im Gegensatz zu den Ansichten, die in einem Explore verknüpft sind) in der Regel die „primären“ Daten enthält. Sie haben beispielsweise einen Explore, der auf Ereignisinformationen basiert. Einige Ereignisse werden möglicherweise von Ihrem System generiert, andere von Ihren Nutzern. Wenn Sie user mit einem regulären JOIN in event zusammenführen, können Sie nur Ereignisse sehen, die von einem Nutzer erstellt wurden, und Sie verlieren die Sichtbarkeit von Systemereignissen. Wenn Sie stattdessen LEFT JOIN verwenden, können Sie alle Ereignisse sehen, unabhängig davon, ob ein Nutzer damit verknüpft ist.

always_join kann sinnvoll sein, wenn das Einschränken von Zeilen wichtig ist.

Wenn Looker SQL für eine Abfrage generiert, wird versucht, den saubersten SQL-Code zu erstellen. Es werden nur die Joins verwendet, die für die von einem Nutzer ausgewählten Felder erforderlich sind. Wenn Sie type verwenden, um etwas anderes als eine LEFT JOIN zu definieren, soll möglicherweise immer ein bestimmter Join (oder eine bestimmte Gruppe von Joins) Teil der Abfrage sein, damit die resultierenden Zeilen Ihre Join-Einschränkungen enthalten. Dazu können Sie den Parameter always_join verwenden.