Diese Seite bezieht sich auf den Parameter
sql
, der Teil eines Join ist.
sql
kann auch als Teil eines Felds verwendet werden, wie auf der Dokumentationsseite zum Parametersql
(für Felder) beschrieben.
sql
kann auch als Teil einer abgeleiteten Tabelle verwendet werden, wie auf der Dokumentationsseite zum Parametersql
(für abgeleitete Tabellen) beschrieben.
Definition
Mit sql
können Sie das RAW-SQL schreiben, das eine Ansicht mit einem explorativen Analysetool verknüpft. Sie wird derzeit fast ausschließlich zur Ausführung von RIGHT JOIN
verwendet. Dies wird vom Parameter type
nicht unterstützt. Andernfalls gibt es bessere Parameter für die Ausführung von Joins.
Vor Looker 3.10 war sql
die einzige verfügbare Methode zum Ausführen eines Joins, der kein LEFT JOIN
war. Vor 3.10 haben Sie beispielsweise eine INNER JOIN
zwischen einer event
-explorativen Datenanalyse und einer member
-Ansicht erstellt:
explore: event {
join: member {
sql:
INNER JOIN member
ON member.id = event.member_id ;;
}
}
-
Ab Looker 3.10 sollte der Join stattdessen mit sql_on
oder foreign_key
ausgeführt werden, während der Join-Typ mit type
so definiert wird:
# Option 1 Using sql_on
explore: event {
join: member {
sql_on: ${member.id} = ${event.member_id} ;;
type: inner
}
}
# Option 2 Using foreign_key
explore: event {
join: member {
foreign_key: member_id
type: inner
}
}
-
Der zweite häufige Anwendungsfall für sql
war das Zusammenführen von Tabellen aus zwei verschiedenen Datenbanken. Dies wird als „Federated Join“ bezeichnet. Sie könnten beispielsweise diesen LookML geschrieben haben:
# Model File
explore: view_1 {
join: view_2 {
sql:
LEFT JOIN other_db.other_schema.view_2 AS view_2
ON view_1.something = view_2.something ;;
}
}
-
Dies kann jetzt mit sql_table_name
so erreicht werden:
# Model File
explore: view_1 {
join: view_2 {
sql_on: ${view_1.something} = ${view_2.something} ;;
type: left_outer
}
}
# View File
view: view_2 {
sql_table_name: other_db.other_schema.view_2 ;;
}