Wie der JOIN-Befehl funktioniert

Referenz:

Mit dem JOIN-Befehl können Sie Reports für zwei oder mehrere verwandte Datenquellen mit nur einer Anfrage erstellen. Verbundene Datenquellen bleiben physisch zwar weiter separat, werden aber als eine Datenquelle behandelt. Es können bis zu 1023 Joins gleichzeitig aktiv sein.

Wenn zwei Datenquellen verbunden werden, wird eine davon Hostdatei und die andere Querverweisdatei genannt. Jedes Mal, wenn ein Datensatz aus der Hostdatei abgerufen wird, werden die entsprechenden Felder in der Querverweisdatei identifiziert, falls auf sie in der Reportanfrage verwiesen wird. Die Datensätze in der Querverweisdatei, die die entsprechenden Werte enthalten, werden daraufhin abgerufen.

Zwei Datenquellen können mit einem bedingten Join verbunden werden, wenn es möglich ist, eine Formel zu definieren, die bestimmt, wie Datensätze in der Hostdatei mit Datensätzen in der Querverweisdatei verbunden werden können. Zwei Datenquellen können mit einem Equijoin verbunden werden, wenn sich in jeder Datenquelle Felder befinden, deren Format (Zeichen, numerisch oder Datum) und Wert gleich ist. Die übereinstimmenden Formate stellen die korrekte Interpretation der Werte sicher. Nehmen wir z. B. an, dass Sie Daten aus zwei Datenquellen lesen müssen (eine namens JOB, die Job-Informationen enthält, und eine zweite namens SALARY, die Gehaltsinformationen enthält). Sie können diese beiden Datenquellen verbinden, falls beide ein Feld enthalten, das dieselbe Angestelltengruppe auf die gleiche Art identifiziert (mit Nachnamen, Seriennummer oder Sozialversicherungsnummer). Der Join wird wirksam, wenn gemeinsame Werte (z. B. übereinstimmende Sozialversicherungsnummern) für die verbundenen Felder abgerufen werden.

Nachdem Sie den JOIN-Befehl ausgegeben haben, können Sie eine TABLE-, TABLEF-, MATCH FILE- oder GRAPH-Anfrage ausgeben, um beide verbundenen Datenquellen zu lesen. Sie müssen nur die erste Datenquelle (Hostdatei) angeben, um einen Report aus zwei oder mehreren Datenquellen zu erzeugen. Nehmen wir z. B. an, dass Sie einen Report mit den Datenquellen JOB und SALARY erstellen. Sie führen den folgenden Equijoin aus:

JOIN EMP_ID IN JOB TO ALL EMP_ID IN SALARY

Dieser Befehl verbindet das Feld EMP_ID in der Datei JOB mit dem Feld EMP_ID in der Datei SALARY. JOB ist die Hostdatei und SALARY die Querverweisdatei. Sie führen dann die folgende Reportanfrage aus:

TABLE FILE JOB
PRINT SALARY AND JOB_TITLE BY EMP_ID
END

Der erste abgerufene Datensatz kommt aus der Datei JOB für den Angestellten #071382660. Daraufhin werden alle Datensätze in der Datenquelle SALARY abgerufen, die den Angestellten #071382660 enthalten. Dieser Vorgang wird fortgesetzt, bis alle Datensätze gelesen wurden.

Joins können auf Folgendem basieren:


Nach oben

x
Referenz: Die Abrufgeschwindigkeit für verbundene Datenquellen erhöhen

Sie können die Abrufgeschwindigkeit für verbundene Strukturen erhöhen, indem Sie einen externen Index verwenden. Das Zielsegment für den Index darf jedoch kein Querverweissegment sein. Zugehörige Informationen finden Sie unter Die Reportverarbeitung verbessern.


WebFOCUS