Typ

Diese Seite bezieht sich auf den Parameter type, der Teil eines Join ist.

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

type kann auch als Teil einer Messung verwendet werden, wie auf der Dokumentationsseite zu Messtypen beschrieben.

type kann auch als Teil eines Dashboard-Filters verwendet werden, der auf der Dokumentationsseite zu Dashboard-Parametern beschrieben wird.

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

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 eine andere type als left_outer verwenden, können Sie always_join verwenden, damit die resultierenden Zeilen Ihre Join-Einschränkungen enthalten

Definition

Mit type können Sie die Art von Join beschreiben, den Sie ausführen möchten. Die möglichen Werte für den Join-Typ sind im nächsten Bild dargestellt:

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

left_outer (Standardwert)

Der häufigste Join-Typ in Looker ist left_outer (der Grund für seine häufige Verwendung wird im Abschnitt left_outer-Join-Typen werden normalerweise bevorzugt auf dieser Seite beschrieben). Vielleicht kennen Sie es von SQL als LEFT JOIN. Wenn Sie diese type verwenden, werden alle Zeilen aus dem Tab „Erkunden“ einbezogen und Daten aus der verknüpften Ansicht werden eingefügt, sofern verfügbar.



full_outer

Der Join-Typ full_outer, den Sie möglicherweise von SQL als FULL OUTER JOIN kennen, enthält alle Zeilen aus der Ansicht „Erkunden“ und der Join-Ansicht, auch wenn keine entsprechenden Daten aus der anderen Ansicht vorhanden sind. Beachten Sie, dass vollständige Outer Joins in MySQL nicht unterstützt werden.



inner

Der Join-Typ inner, den Sie möglicherweise von SQL als JOIN oder INNER JOIN kennen, enthält nur Zeilen mit übereinstimmenden Einträgen in der Ansicht „Erkunden“ und der Join-Ansicht.



cross

Der Join-Typ cross, den Sie möglicherweise von SQL als CROSS JOIN kennen, wird nur selten verwendet. Manchmal ist es hilfreich für die Nullfüllung oder die Matrixgenerierung. Für jede Kombination aus „Erkunden“ und „Verbundene Elemente“ wird eine Zeile erstellt. Das Konzept ist in einem Venn-Diagramm schwer zu verstehen und sollte anhand des Tabellenbeispiels besser verstanden werden:

Beispiele

Verwenden Sie einen LEFT JOIN, um dna-Daten zu Ihren people-Daten hinzuzufügen, wenn dna-Informationen verfügbar sind:

explore: person {
  join: dna {
    sql_on: ${person.dna_id} = ${dna.id} ;;
    type: left_outer  # Could be excluded since left_outer is the default
  }
}

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 von einem Nutzer generierten Ereignisse zu beschränken:

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

Verwenden Sie 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 Informationen

left_outer Join-Typen werden normalerweise bevorzugt

Beim Lernen und Verwenden von SQL konzentrieren sich viele Menschen hauptsächlich auf JOIN, technisch gesehen als „Inner Join“ bezeichnet. Daher kann man davon ausgehen, dass type: inner_join in den meisten Fällen verwendet werden sollte. Looker funktioniert jedoch in der Regel am besten mit type: left_outer, ähnlich wie mit LEFT JOIN in SQL.

Der Grund dafür ist, dass die mit einer explorativen Datenanalyse verknüpfte Datenansicht (im Gegensatz zu den in eine explorative Datenanalyse eingebundenen Ansichten) in der Regel die „primären“ Daten sind. So könnten Sie beispielsweise die Funktion „Erkunden“ nutzen, die auf Ereignisinformationen basiert. Einige der Ereignisse können von Ihrem System und andere von Ihren Nutzern generiert werden. Wenn Sie user über ein reguläres JOIN in event einbinden, sehen Sie nur die von einem Nutzer erstellten Ereignisse. Die Sichtbarkeit von Systemereignissen geht dann verloren. Wenn Sie stattdessen LEFT JOIN verwenden, sehen Sie alle Ereignisse, unabhängig davon, ob ein Nutzer mit ihnen verknüpft ist.

Sie können always_join verwenden, wenn die Einschränkung von Zeilen wichtig ist

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. Wenn Sie mit type etwas anderes als LEFT JOIN definieren, sollte immer ein bestimmter Join (oder eine Gruppe von Joins) Teil der Abfrage sein, damit die resultierenden Zeilen Ihre Join-Einschränkungen enthalten. Verwenden Sie dazu den Parameter always_join.