Typ

Auf dieser Seite wird der type Parameter beschrieben, der Teil eines Joins 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. Weitere Informationen finden Sie auf der Dokumentationsseite Messwerttypen.

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

type kann auch als Teil eines Dashboard-Elements verwendet werden. Weitere Informationen finden Sie auf der Dokumentationsseite Parameter type (für LookML-Dashboards).

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)

Sonderregeln
Wenn Sie einen anderen type als left_outer verwenden, sollten Sie always_join verwenden, um sicherzustellen, dass die resultierenden Zeilen Ihre Join-Einschränkungen enthalten.

Definition

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

Die möglichen Join-Typwerte werden in diesen Abschnitten auf dieser Seite beschrieben:

left_outer (der Standardwert)

Der häufigste Join-Typ in Looker ist left_outer. Der Grund dafür wird im Abschnitt left_outer-Join-Typen werden in der Regel bevorzugt auf dieser Seite beschrieben. In SQL ist er als LEFT JOIN bekannt. Wenn Sie diesen type verwenden, werden alle Zeilen aus dem Explore einbezogen und Daten aus der verbundenen Ansicht werden eingefügt, sofern verfügbar.

full_outer

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

inner

Der inner Join-Typ – in SQL als JOIN oder INNER JOIN bekannt – umfasst nur Zeilen mit übereinstimmenden Datensätzen im Explore und in der verbundenen Ansicht.

cross

Der Join-Typ cross – in SQL als CROSS JOIN bekannt – wird selten verwendet. Er ist manchmal hilfreich für das Auffüllen mit Nullen oder die Matrixgenerierung. Er erstellt eine Zeile für jede Kombination aus Explore und verbundener Ansicht.

Beispiele

Verwenden Sie einen FULL OUTER JOIN, um user-Daten zu Ihren order-Daten hinzuzufügen, auch wenn der Nutzer keine Bestellung aufgegeben hat:

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

Verwenden Sie einen INNER JOIN, um user-Daten zu Ihren event-Daten hinzuzufügen und die Ergebnisse auf die Ereignisse zu beschränken, die von einem Nutzer generiert wurden:

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

Verwenden Sie einen 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 Nutzer hauptsächlich auf JOIN, der 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 mit einem Explore verknüpft sind) in der Regel die „primären“ Daten enthält. Sie haben beispielsweise ein Explore, das auf Ereignisinformationen basiert. Einige der Ereignisse werden von Ihrem System generiert, andere von Ihren Nutzern. Wenn Sie user mit event über einen regulären JOIN verknüpfen, können Sie nur Ereignisse sehen, die von einem Nutzer erstellt wurden, und Sie verlieren die Sichtbarkeit von Systemereignissen. Wenn Sie stattdessen einen LEFT JOIN verwenden, können Sie alle Ereignisse sehen, unabhängig davon, ob ein Nutzer damit verknüpft ist.

Verwenden Sie always_join, wenn das Einschränken von Zeilen wichtig ist.

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