IT-Girl Geschrieben 19. August 2002 Geschrieben 19. August 2002 Hilfe! Ich habe ein Problem! Es sollen 4 Tabellen in einer Abfrage miteinander verknüpfen. In den Tabellen sind einige Spalten gleich. Nun liefert die Abfrage zwar ein korrektes Ergebnis, aber es werden leider auch die gleichlautenden Spalten der unterschiedlichen Tabellen alle ausgegeben, d.h. es gibt Doppelnennungen. Beispiel: Tabelle 1: OBJECTID, CREATEDATE, STATUS Tabelle 2: OBJECTID, STRASSE, DATEINAME, PERSON, KEYWORDS ..... Tabelle 3: OBJECTID, AKTENZEICHEN, DATEINAME, STRASSE, DATEIDATUM ..... Tabelle 4: OBJECTID, STRASSE, BEGINN, END, DATEIDATUM ..... Bisherige Abfage: SELECT * FROM Tabelle1, Tabelle2, Tabelle3, Tabelle4 WHERE Tabelle2.PERSON like 'Entwicklung' AND Tabelle1.OBJECTID = Tabelle2.ObjectID or Tabelle1.ObjectID = Tabelle3.ObjectID or Tabelle1.OBJECTID = Tabelle4.ObjectID Wie kann ich die Tabellen verknüpfen, alle Angaben erhalten und trotzdem wird keine Spalte doppelt ausgegeben? Hat jemand einen Tipp? Wäre suuuper.
robotto7831a Geschrieben 19. August 2002 Geschrieben 19. August 2002 Hallo, warum ersetzt Du das SELECT * FROM nicht durch SELECT strasse FROM. Dann wird nur die Spalte strasse ausgegeben. Durch Komma getrennt, kannst Du weitere Spalten anzeigen lassen. Frank
IT-Girl Geschrieben 19. August 2002 Autor Geschrieben 19. August 2002 Merci für die schnelle Antwort. Leider sind die Tabellen zu groß, um einzelne Spalten aufzurufen. Dadurch würde die Abfrage einfach zu umfangreich und verwirrend. Außerdem muß sie ziemlich einfach gehalten werden, da sie später mit Delphi programmiert und in einer Suchmaske ausgeführt werden soll. Gruß IT-Girl
robotto7831a Geschrieben 19. August 2002 Geschrieben 19. August 2002 Wenn die Tabelle später mal länger wird, dann sind Abfragen auf einzelne Spalten schneller ausgeführt als auf die komplette Tabelle. Kommt halt drauf an, was man machen möchte. Frank
IT-Girl Geschrieben 19. August 2002 Autor Geschrieben 19. August 2002 Es soll später eine Art Web-Formular dem User zur Verfügung stehen, mit dem er nach verschiedenen Begriffen in allen 4 Tabellen suchen kann. Als Ergebnis sollen ihm dann alle Dokumente angezeigt werden, die seine Suchbegriffe beinhalten. Z.Zt. weiß ich leider auch nicht mehr. Hatte es auch schon mit Inner Join probiert. Das klappt leider nur bei 2 Tabellen. :confused:
tauron Geschrieben 20. August 2002 Geschrieben 20. August 2002 Moin ! Inner Join geht auch über meherere Tabellen, das funzt dann in etwa so: ... FROM ((Tabelle1 INNER JOIN Tabelle2 ON Tabelle1.ObjectID = Tabelle2.ObjectID) INNER JOIN Tabelle3 ON Tabelle1.ObjectID = Tabelle3.ObjectID) INNER JOIN Tabelle4 ON Tabelle1.ObjectID = Tabelle4.ObjectID sollte dann denk ich auch deutlich schneller gehen, bei vier großen Tabellen. Mit den doppelten Spalten fällt mir auch nur ein, die im SELECT namentlich aufzuführen, die Du angezeigt haben möchtest. Hoffe das hilft Dir weiter. Gruß Christian ------------------------------------------------------------ "All power corrupts. Absolute Power is kinda neat though..." "50.000 gold a year in child care and they call it a CULT ?!?" - Kel'Thuzad, Archlich
IT-Girl Geschrieben 20. August 2002 Autor Geschrieben 20. August 2002 Danke, werde es noch versuchen. Aber laut meinem Chef soll es nun anders gemacht werden. Immer die Tabelle 1 mit einer anderen Tabelle verknüpfen, daraus die Abfrage erstellen, Ergebnis in einer XML-Datei abspeichern, nächste Verknüpfung und Abfrage usw. Anschließend werden alle Daten in Form einer Website ausgegeben. Mal sehen, ob ich das hinbekomme. Soll jetzt erstmal die einzelnen Abfragen mit Delphi und SQL durchführen und abspeichern. *uff* Dann sehen wir weiter.
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden