Veröffentlicht 19. Oktober 200618 j Hi, kann mir jemand sagen, wie ich mehrere Tabellen aus einer DB auswählen kann? Es geht um eine Adressüberprüfung. Für jeden Vorwahlbereich gibt es eine Tabelle (name z.b kiel_431, kiel_432 usw.) mit den dort befindlichen Strassennamen. Der User gibt seine Strasse, plz, ort, vorwahl ein, und wenn nicht die genaue Strasse ermittelt werden kann, dann soll er die ersten 3 Buchstaben der Strasse nehmen, und in allen Tabellen suchen, die den Ortsnamen enthalten. z.B. Select * from Database where table_name like 'kiel' AND strasse like 'Alt%'; Ich denke. dass das so ähnlich aussehen müsste, aber bekomme immer einen Syntaxfehler. :| Oder muss man das irgendwie schachteln? Vielen Danke für Hilfe, Mara
19. Oktober 200618 j Select * from table_name where ort like 'kiel' AND strasse like 'Alt%'; So waers richtiger Schau dir nochmal allgemein Select Statements an, und wie diese aufgebaut werden sollten.
19. Oktober 200618 j Man muss jede Tabelle einzelnd abfragen. Du könntest über einen union die Ergebnisse dann zusammenpacken. Frank
19. Oktober 200618 j So waers richtiger Schau dir nochmal allgemein Select Statements an, und wie diese aufgebaut werden sollten. ja, so hab ich das Statement ja, wenn ich die normale Abfrage mach Ich meinte nur irgenwo gesehen zu haben, dass man die Tabellen abfragen kann, und als Filter die Eigenschaften der Tabellennamen (z.B. table_name) benutzen kann. Aber ich konnte es nicht mehr finden, auch im MySQL Handbuch nicht. Einzeln abfragen....na dann bleibt mir wohl nix andres übrig, als das so zu machen :/
19. Oktober 200618 j ich glaube ich verstehe was gemeint ist: du hast für jeden telefonvorwahlbereich eines ortes eine eigene tabelle. wenn du MySQL ab version 5 verwendest, könnst du ein subquery machen und ort sowie vorwahl zusammenkonkatenieren: Select * from Database where table_name = (select CONCAT(ort, '_', vorwahl) from vorwahlen ....) AND strasse like 'Alt%'; allerdings ist obiges ungetestet und ich frage mich, ob es sinn macht, vorwahlbereiche eines ortes in separate tabellen auszulagern. s'Amstel
19. Oktober 200618 j ich glaube ich verstehe was gemeint ist: du hast für jeden telefonvorwahlbereich eines ortes eine eigene tabelle. wenn du MySQL ab version 5 verwendest, könnst du ein subquery machen und ort sowie vorwahl zusammenkonkatenieren: allerdings ist obiges ungetestet und ich frage mich, ob es sinn macht, vorwahlbereiche eines ortes in separate tabellen auszulagern. s'Amstel Ja, genau richtig verstanden! Version muss ich mal nachschauenn. Die Tabellenstruktur kann ich im Nachhinein nicht mehr ändern, die ist schon so hier vorhanden. Es geht um Telefeonanschlussverfügbarkeit, daher macht es denk ich schon Sinn, das nach den Vorwahlbereichen aufzuteilen. Ansonsten hätte man ja eine ewig lange Tabelle mit allen Strassennamen. Aber meine Erfahrung mit derart großen Datenmengen ist auch bregrenzt. Jedenfalls danke für die Tips!
23. Oktober 200618 j MySQL kann ab Version 4.1.0 Subselects sorry. dann hatte ich das mit einer anderen funktionalität verwechselt, die erst ab 5 einsetzbar ist. :floet: s'Amstel
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.