moonsister Geschrieben 19. Oktober 2006 Geschrieben 19. Oktober 2006 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 Zitieren
Joe Kinley Geschrieben 19. Oktober 2006 Geschrieben 19. Oktober 2006 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. Zitieren
robotto7831a Geschrieben 19. Oktober 2006 Geschrieben 19. Oktober 2006 Man muss jede Tabelle einzelnd abfragen. Du könntest über einen union die Ergebnisse dann zusammenpacken. Frank Zitieren
moonsister Geschrieben 19. Oktober 2006 Autor Geschrieben 19. Oktober 2006 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 :/ Zitieren
Amstelchen Geschrieben 19. Oktober 2006 Geschrieben 19. Oktober 2006 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 Zitieren
moonsister Geschrieben 19. Oktober 2006 Autor Geschrieben 19. Oktober 2006 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! Zitieren
geloescht_JesterDay Geschrieben 23. Oktober 2006 Geschrieben 23. Oktober 2006 wenn du MySQL ab version 5 verwendest... MySQL kann ab Version 4.1.0 Subselects Zitieren
Amstelchen Geschrieben 23. Oktober 2006 Geschrieben 23. Oktober 2006 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 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.