Zum Inhalt springen

Verknüpfung mehrerer Tabellen mit einer SQL-Abfrage


Empfohlene Beiträge

Geschrieben

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. ;)

Geschrieben

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

Geschrieben

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:

Geschrieben

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

Geschrieben

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.

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...