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. Zitieren
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 Zitieren
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 Zitieren
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 Zitieren
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: Zitieren
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 Zitieren
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. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.