Auf dieser Seite wird auf den Parameter
sqlverwiesen, der Teil eines Join ist.
sqlkann auch als Teil eines Felds verwendet werden, wie auf der Dokumentationsseite zum Parametersql(für Felder) beschrieben.
sqlkann 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 den Roh-SQL-Code schreiben, mit dem eine Ansicht mit einem Explore verknüpft wird. Derzeit wird er fast ausschließlich zum Ausführen von RIGHT JOIN verwendet, was vom Parameter type nicht unterstützt wird. Andernfalls gibt es bessere Parameter für Joins.
Vor Looker 3.10 war sql die einzige Methode, um einen Join auszuführen, der kein LEFT JOIN war. Vor dem 3.10. haben Sie möglicherweise eine INNER JOIN zwischen einem event-Explore und einer member-Datenansicht erstellt, die so aussieht:
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. Der Join-Typ sollte mit type definiert werden:
# 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 Verknüpfen von Tabellen aus zwei verschiedenen Datenbanken, was als „Federated Join“ bezeichnet wird. Angenommen, Sie haben diesen LookML-Code geschrieben:
# 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 stattdessen mit sql_table_name 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 ;;
}