Diese Seite bezieht sich auf den Parameter
from
, der Teil eines Join ist.
from
kann auch als Teil eines explorativen Analysetools verwendet werden, wie auf der Seite mit der Parameterdokumentation fürfrom
beschrieben.
Nutzung
join: join_name {
from: view_name_2
}
}
Hierarchie
from |
Standardwert
Eine Ansicht, deren Name mit dem Namen des Joins übereinstimmtAkzeptiert
Name einer vorhandenen Ansicht |
Definition
from
gibt die view
an, die in einem Join verwendet werden soll. Wenn from
weggelassen wird, geht Looker davon aus, dass der zugrunde liegende Ansichtsname mit dem Join-Namen identisch ist.
In der Regel wird from
nur verwendet, wenn der Join und seine Felder einen anderen Namen als die zugrunde liegende Ansicht haben sollen. Zur Verdeutlichung haben wir ein Beispiel, bei dem eine Dimension mit dem Namen order_value
in einer Ansicht mit dem Namen underlying_view
erstellt wurde:
- Dieses Feld wird normalerweise in der Benutzeroberfläche „Erkunden“ als zugrunde liegender Bestellwert angezeigt und in LookML mit
${underlying_view.order_value}
referenziert. - Im Nutzungsbeispiel oben würde das Feld stattdessen als NEW ALIAS NAME Order Value (Bestellwert für neue ALIAS) erscheinen und als
${new_alias_name.order_value}
referenziert werden.
Diese Technik ist besonders nützlich, wenn dieselbe Ansicht auf verschiedene Arten mit einem explorativen Analysetool verknüpft werden muss.
Beispiele
Verbinden Sie die Ansicht „person
“ mit der Funktion „Erkunden“ (order
), aber nennen Sie sie stattdessen customer
:
explore: order {
join: customer {
from: person
sql_on: ${order.customer_id} = ${customer.id} ;;
}
}
Verbinden Sie die Ansicht person
mit dem order
Erkunden zwei Mal: einmal als customer
und einmal als representative
:
explore: order {
join: customer {
from: person
sql_on: ${order.customer_id} = ${customer.id} ;;
}
join: representative {
from: person
sql_on: ${order.representative_id} = ${representative.id} ;;
}
}
Wichtige Punkte
from
ändert die Art und Weise, wie Felder in einem explorativen Analysetool referenziert werden
Wie oben erwähnt, hat die Verwendung von from
einen wichtigen Einfluss darauf, wie Felder referenziert werden. Das kann zu einigen Problemen führen, wenn ein view
an vielen verschiedenen Orten verwendet wird. Betrachten Sie dieses Beispiel:
explore: order {
join: customer {
from: person
sql_on: ${order.customer_id} = ${customer.id} ;;
}
}
Hier wird person
mit order
verbunden, wird aber customer
genannt. Wenn Sie also ein Feld aus customer
in order
referenzieren möchten, verwenden Sie ${customer.field_name}
.
Wenn Sie in einer zweiten Erkundungstour noch einmal person
mit order
verknüpfen, aber nicht in customer
umbenennen, funktioniert die Referenz ${customer.field_name}
nicht in dieser zweiten Erkundung. In der Regel wird das problematische Feld mithilfe von fields
aus der zweiten Option „Erkunden“ ausgeschlossen. Dies würde in etwa so aussehen:
explore: the_second_explore {
fields: [ALL_FIELDS*, -person.problem_field]
join: person {
sql_on: ${the_second_explore.some_field} = ${person.some_field} ;;
}
}
from
wird am häufigsten verwendet, um dieselbe Tabelle mehrmals mit einem „Erkunden“ zu verknüpfen
Wenn eine einzelne Tabelle unterschiedliche Arten von Elementen enthält, ist es möglich, eine Ansicht mehrmals mit dem Bereich „Erkunden“ zu verknüpfen. Angenommen, Sie haben eine order
-Anfrage und müssen einer person
-Datenansicht zweimal beitreten – einmal für den Kunden und einmal für den Kundenservicemitarbeiter. Das könnte dann folgendermaßen aussehen:
explore: order {
join: customer {
from: person
sql_on: ${order.customer_id} = ${customer.id} ;;
}
join: representative {
from: person
sql_on: ${order.representative_id} = ${representative.id} ;;
}
}
SQL generiert Looker aus diesem LookML:
SELECT ...
FROM order
LEFT JOIN person AS customer
ON customer.id = order.customer_id
LEFT JOIN person AS representative
ON representative.id = order.representative_id