Auf dieser Seite wird der
typeParameter beschrieben, der Teil eines Joins ist.
typekann auch als Teil einer Dimension verwendet werden. Weitere Informationen finden Sie auf der Dokumentationsseite Dimensionen, Filter und Parametertypen.
typekann auch als Teil eines Messwerts verwendet werden. Weitere Informationen finden Sie auf der Dokumentationsseite Messwerttypen.
typekann auch als Teil eines Dashboard-Filters verwendet werden. Weitere Informationen finden Sie auf der Dokumentationsseite Dashboard-Parameter.
typekann auch als Teil eines Dashboard-Elements verwendet werden. Weitere Informationen finden Sie auf der Dokumentationsseite Parametertype(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.