from (für Joins)

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ür from beschrieben.

Nutzung

Explore: Ansichtsname {
join: join_name {
from: view_name_2
}
}
Hierarchie
from
Standardwert
Eine Ansicht, deren Name mit dem Namen des Joins übereinstimmt

Akzeptiert
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