Freigeben über


Erstellen einer Ansicht aus mehreren Tabellen

Um auf verknüpfte Informationen, die sich in unterschiedlichen Tabellen befinden, zuzugreifen, können Sie eine neue Ansicht erstellen und mehrere Tabellen hinzufügen oder eine vorhandene Ansicht durch Hinzufügen weiterer Tabellen ändern. Tabellen können Sie mit dem Ansichts-Designer oder mit dem CREATE SQL VIEW-Befehl hinzufügen. Nach dem Hinzufügen der Tabellen können Sie die Steuerung der Ansichtsergebnisse unter Verwendung der Verknüpfungsbedingung, die Sie zwischen den Tabellen definieren, erweitern.

So erstellen Sie eine Ansicht aus mehreren Tabellen

  • Erstellen Sie im Projekt-Manager eine Ansicht, und fügen Sie die gewünschten Tabellen im Ansichts-Designer hinzu.

    - Oder -

  • Öffnen Sie eine Datenbank, verwenden Sie den CREATE SQL VIEW-Befehl, und fügen Sie in der FROM-Klausel Tabellennamen und Verknüpfungsbedingungen hinzu.

    Wenn Sie die Tabellen nur mit dem CREATE SQL VIEW-Befehl hinzufügen, erstellen Sie damit ein Kreuzprodukt. Sie müssen also eine Verknüfpungsbedingung in der Anweisungsklausel FROM oder WHERE angeben, um nach verknüpften Datensätzen in den Tabellen zu suchen. Bestehen bereits persistente Beziehungen zwischen den Tabellen, werden diese automatisch als Verknüpfungsbedingungen verwendet.

Erstellen einer Remoteansicht aus mehreren Tabellen

Wenn Sie eine Verbindung mit einer Remotedatenquelle erstellen, können Sie auf zahlreiche verknüpfte Tabellen zugreifen. Sie können die benötigten Tabellen auswählen und die Beziehungen zwischen ihnen gegebenenfalls anpassen, um die benötigten Daten zu erhalten.

So erstellen Sie eine Remoteansicht, die auf mehreren Tabellen basiert

  1. Wählen Sie aus dem Menü Datei den Befehl Neu, wählen Sie die Option Remoteansicht aus, und wählen Sie Neue Datei.
  2. Wählen Sie im Dialogfeld "Verbindung oder Datenquelle auswählen" eine vordefinierte Verbindung oder eine verfügbare Datenquelle aus.
  3. Melden Sie sich gegebenenfalls beim Server an.
  4. Wählen Sie im Dialogfeld Öffnen die Tabellen aus, die Sie verwenden möchten.
  5. Akzeptieren Sie im Dialogfeld Verknüpfungsbedingung die Standardverknüpfung, oder erstellen Sie gegebenenfalls eine Verknüpfung.

Ebenso wie bei lokalen Ansichten können Sie mit Hilfe der Optionen auf der Registerkarte Aktualisierungskriterien des Ansichts-Designers steuern, wie die Quelltabellen aktualisiert werden.

Definieren und Ändern von Verknüpfungsbedingungen

Normalerweise werden für die Definition einer Verknüpfungsbedingung die Beziehungen verwendet, die bereits zwischen den Primär- und Fremdschlüsselfeldern der Tabellen bestehen. Angenommen, Sie suchen nach Informationen zu Aufträgen und möchten dabei, dass die Informationen über den Kunden, der den Auftrag erteilt hat, ebenfalls angezeigt werden. Sie können hierzu eine Ansicht unter Verwendung der Tabellen Customer und Orders erstellen. Legen Sie dann eine Verknüpfungsbedingung fest zum Vergleich der Werte in den Feldern, die in beiden Tabellen vorhanden sind. Diese Bedingung soll nur die Werte anzeigen, die in beiden Tabellen gleich sind. Bei den Tabellen Customer und Orders ist das gemeinsame Feld Customer_ID.

So definieren Sie Verknüpfungsbedingungen in einer Ansicht

  • Erstellen oder ändern Sie im Projekt-Manager eine Ansicht, und fügen Sie dann die gewünschten Tabellen im Ansichts-Designer hinzu.

    - Oder -

  • Öffnen Sie eine Datenbank, verwenden Sie den CREATE SQL VIEW-Befehl, und fügen Sie in der FROM-Klausel Tabellennamen und Verknüpfungsbedingungen hinzu.

Der folgende Code erstellt eine neue, im Beispiel oben beschriebene Ansicht mit der FROM-Klausel zur Angabe der Verknüpfungsbedingungen für die Ansicht.

OPEN DATABASE testdata
CREATE SQL VIEW cust_orders_view AS ;
   SELECT * FROM testdata!customer ;
      INNER JOIN testdata!orders ;
      ON customer.cust_id = orders.cust_id

Diese Verknüpfungsbedingung verfügt über verschiedene Aspekte: die Art der Verknüpfung, die zu verknüpfenden Felder und der Operator zum Vergleichen der Felder. In diesem Beispiel, einer inneren Verknüpfung, werden nur Zeilen der Tabelle customer in das Ergebnis aufgenommen, die einem oder mehreren Datensätzen in der Tabelle orders entsprechen.

Zum individuellen Anpassen des Ergebnisses einer Ansicht können Sie folgende Punkte angeben:

  • Felder in der Verknüpfung.
  • Vergleichsoperatoren zwischen den Feldern.
  • Verknüpfungsfolgen, wenn das Ansichtsfenster zwei Tabellen enthält.
  • Art der Verknüpfung.

Das Angeben von Verknüpfungen zwischen Feldern, die keine Primär- oder Fremdschlüsselfelder sind, kann in bestimmten Fällen nützlich sein. Diese Verknüpfungsart wird jedoch nur in wenigen Ansichten verwendet.

Durch das Ändern des Vergleichsoperators wird gesteuert, welche Datensätze verglichen und zurückgegeben werden. Dies entspricht in etwa der Funktion eines Filters. Angenommen, Sie verwenden ein Datumsfeld in einer Verknüpfung, dann können Sie anhand des Vergleichsoperators festlegen, dass nur die Datensätze vor oder nach einem bestimmten Datum in das Ergebnis aufgenommen werden sollen.

Weitere Informationen zu Verknüpfungsfolgen finden Sie unter Definieren von mehreren Verknüpfungsbedingungen.

Das Auswählen einer anderen Verknüpfungsart ermöglicht es Ihnen, die Abfrageergebnisse zu erweitern, so dass sowohl die Datensätze, die die Verknüpfungsbedingung erfüllen, als auch die, die sie nicht erfüllen, in das Abfrageergebnis aufgenommen werden. Haben Sie in einer Ansicht mehr als zwei Tabellen, können Sie das Ergebnis beeinflussen, indem Sie die Reihenfolge der Verknüpfungsbedingungen in der FROM-Klausel ändern.

Sie können die Art der Verknüpfung im Ansichts-Designer oder mit der Programmiersprache ändern.

So ändern Sie die Verknüpfungsart

  • Wählen Sie die Registerkarte Verknüpfung.

    - Oder -

  • Doppelklicken Sie auf die Verknüpfungslinie.

    - Oder -

  • Öffnen Sie eine Datenbank, verwenden Sie den CREATE SQL VIEW-Befehl, und fügen Sie in der FROM-Klausel Tabellennamen und Verknüpfungsbedingungen hinzu.

Aufnehmen von nichtentsprechenden Datensätzen in das Ergebnis

Wenn das Ergebnis auch die Zeilen mit nichtentsprechenden Datensätzen enthalten soll, können Sie eine äußere Verknüpfung verwenden. Zum Beispiel, wenn Sie eine Liste aller Kunden und nicht nur derjenigen Kunden, die einen Auftrag erteilt haben, benötigen. Ferner sollen in der Ansicht die Auftragsnummern bei den Kunden, die einen Auftrag erteilt haben, angezeigt werden. Wenn Sie eine äußere Verknüpfung verwenden, werden von den leeren Feldern der nichtentsprechenden Datensätze Nullwerte zurückgegeben.

Diese Ansicht können Sie ebenfalls anhand der Programmiersprache mit dem folgenden Code erstellen:

OPEN DATABASE testdata
CREATE SQL VIEW cust_orders_view AS ;
   SELECT * FROM testdata!customer ;
      LEFT OUTER JOIN testdata!orders ;
      ON customer.cust_id = orders.cust_id

Welche nichtentsprechenden Datensätze in die Ansicht aufgenommen werden sollen, können Sie durch Auswahl der folgenden Verknüpfungen festlegen.

Aufgabenstellung Verknüpfungsart
Rückgabe der Datensätze beider Tabellen, die die zwischen den Feldern in der Verknüpfungsbedingung festgelegte Vergleichsbedingung erfüllen. Innere Verknüpfung
Rückgabe aller Datensätze der Tabelle, die sich auf der linken Seite des Schlüsselwortes JOIN befindet, und nur der Datensätze der Tabelle auf der rechten Seite des Schlüsselwortes, die Entsprechungen haben. Linke äußere Verknüpfung
Rückgabe aller Datensätze der Tabelle, die sich auf der rechten Seite des Schlüsselwortes JOIN befindet, und nur der Datensätze der Tabelle auf der linken Seite des Schlüsselwortes, die Entsprechungen haben. Rechte äußere Verknüpfung
Rückgabe aller entsprechenden und nichtentsprechenden Datensätze aus beiden Tabellen. Vollständige äußere Verknüpfung

Definieren von mehreren Verknüpfungsbedingungen

Wenn Sie Ansichten oder Abfragen mit mehr als zwei Tabellen erstellen, können Sie die Ergebnisse durch die Reihenfolge der angegebenen Verknüpfungsbedingungen ändern. Angenommen, Sie suchen nach Informationen zu Aufträgen und möchten dabei ebenfalls, dass die Informationen über den Angestellten, der den Auftrag bearbeitet, sowie den Kunden, der den Auftrag erteilt hat, angezeigt werden. Dazu können Sie unter Verwendung der Tabellen customer, orders und employee eine Ansicht erstellen und eine innere Verknüpfung der gemeinsamen Felder in diesen Tabellen einrichten. Die Tabellen customer und orders verfügen beide über das Feld Customer ID, während die Tabellen orders und employee beide über das Feld Employee ID verfügen.

Dieser Ansicht liegt die folgende SQL-Anweisung zugrunde:

OPEN DATABASE testdata
CREATE SQL VIEW cust_orders_emp_view AS ;
   SELECT * FROM testdata!customer ;
      INNER JOIN testdata!orders ;
      ON customer.cust_id = orders.cust_id ;
      INNER JOIN testdata!employee ;
      ON orders.emp_id = employee.emp_id

Verwenden von Verknüpfungen in der WHERE-Klausel

Sie können die gewünschten Verknüpfungsbedingungen in der WHERE-Klausel angeben. Im Gegensatz zur FROM-Klausel können Sie jedoch bei dieser Klausel keine Verknüpfungsart angeben. Bei Remoteansichten wird die Verknüpfungsklausel immer in der WHERE-Klausel angegeben.

Der folgende Code erstellt dieselbe Ansicht wie im Beispiel oben, verwendet jedoch zur Angabe der Verknüpfungsbedingungen für die Ansicht die WHERE-Klausel:

OPEN DATABASE testdata
CREATE SQL VIEW cust_orders_emp_view AS ;
   SELECT * FROM testdata!customer, ;
      testdata!orders, testdata!employee ;
   WHERE customer.cust_id = orders.cust_id ; 
   AND orders.emp_id = employee.emp_id

Siehe auch

Erstellen einer Ansicht aus mehreren Tabellen | Zugreifen auf Remotedaten | Erstellen von Abfragen | Projekt-Manager | Ansichts-Designer | Anzeigen von Daten mit Hilfe von Ansichten |CREATE SQL VIEW