ostpower Geschrieben 15. April 2008 Teilen Geschrieben 15. April 2008 Ich habe 3 Tabellen die ich miteinander verknüpfen will, ich weiß jetzt nicht genau wie ich den Join machen soll. Also in einer Tabelle gibt es eine Spalte in der eine Ortsbezeichnung als ID vermerkt ist, also dort steht dann nicht "Berlin" sondern "1234". In einer 2. Tabelle gibt es dann eine Aufschlüsselung in der man nachschauen kann dass 1234 --> Berlin bedeutet. Jetzt hab ich noch eine 3. Tabelle in der es eine Ortsspalte gibt, wo der Name drin steht, also Berlin z.b. Jetzt ist es so dass die 1. Tabelle nur einen Teil der Daten hat, die es auch in der 3. Tabelle gibt. Ich möchte mir jetzt aus der 1. Tabelle nur die Datensätze ausgeben lassen, die denen der 3. Tabelle entsprechen (indem ich nachdem Ort selektiere) Also ich müsste ja dann erst mal ein join machen von der 1.Tabelle und der 2.Tabelle dass ich weiß welche ID welchem Ort zugeordnet ist. Und wie join ich dann die 3.Tabelle? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dr.dimitri Geschrieben 15. April 2008 Teilen Geschrieben 15. April 2008 Hatten wir das nicht schon mal: http://forum.fachinformatiker.de/datenbanken/114617-daten-2-bzw-3-tabellen-zusammenfuehren.html Dim Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
ostpower Geschrieben 15. April 2008 Autor Teilen Geschrieben 15. April 2008 ehm...da hast du recht...Moment ich probier das gleich mal aus, weil das hat glaub ich nicht funktioniert. Also du hast mir das ja geschickt: SELECT a.* FROM tabelle1 a, tabelleid ids, tabelleort ort WHERE ids.id=ort.id AND ort.ortname=a.ortname Aber die letzte Where-Bedingung geht ja nicht, da in der a-Tabelle keine Orstname steht sondern nur die ID Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dbwizard Geschrieben 15. April 2008 Teilen Geschrieben 15. April 2008 ehm...da hast du recht...Moment ich probier das gleich mal aus, weil das hat glaub ich nicht funktioniert. Also du hast mir das ja geschickt: SELECT a.* FROM tabelle1 a, tabelleid ids, tabelleort ort WHERE ids.id=ort.id AND ort.ortname=a.ortname Aber die letzte Where-Bedingung geht ja nicht, da in der a-Tabelle keine Orstname steht sondern nur die ID - Könntest du mal die Struktur der 3 Tabellen posten ? Mir ist irgendwie nicht klar, wieso du 3 Tabellen brauchst, um eine PLZ-Ort Beziehung abzubilden Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
ostpower Geschrieben 15. April 2008 Autor Teilen Geschrieben 15. April 2008 Das kommt daher da das die Daten aus 2 Datenbanken bzw. 2 unterschiedlichen System kommen und diese konsolidiert werden. Die Ort-ID's sind allerdings keine PLZ's sondern nach anderen Kriterien erstelle Nummern. Also Tabelle1 sieht so aus(gibt natürlich noch mehr Spalten als Ort, aber nur die is ja jetzt entscheidend): Ort ------ 1234 3363 2327 8363 Tabelle2: ID_____Ortsbez 1234___BER 3363___FRA 2327___COL 8363___HAM Diese beiden Tabellen sind Teil eines Systems mit sagen wir mal 10Mio Datensätzen. Tabelle3 stammt jetzt aus einem anderen System: Ort ----- FRA BER HAM COL Dort gibt es nur 1Mio Datensätze. Und ich möchte jetzt aus der Tabelle des 1 Systems die Datensätze rausfiltern, die denen des 2. Systems entsprechen. Also wenn es beispielsweise im System1 Datensätze gibt mit dem Ort XYZ gibt, die es in dem 2. System gar nicht gibt, dann möchte ich diese auch nicht ausgegeben haben. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dr.dimitri Geschrieben 15. April 2008 Teilen Geschrieben 15. April 2008 Naja wo liegt da das Problem? Du formulierst das einfach als Join: SELECT ids.id,ortname.name FROM ids,ort_ids,ortname WHERE ids.id=ort_ids.id AND ort_ids.ortsbez=ortname.name Das ist im übrigen auch das was ich vorher gepostet hab, allerdings bist mit deinen blö... meine unglücklichen Tabellenbenamsungen hier im Beispiel durcheinander gekommen. Dim Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
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.