ostpower Geschrieben 31. März 2008 Geschrieben 31. März 2008 Servus, ich habe wieder ein Problem, bzw. ich hab grad ne denkblockade, deswegen frag ich mal hier. Also ich hab 2 Tabellen. In beiden stehen ähnliche Daten, die Tabellen haben aber eine unterschiedliche Herkunft. Ich möchte jetzt prüfen welche Datensätze von der einen Tabelle in der anderen drin sind. Jetzt gibt es 2 Spalten die es in beiden Tabellen gibt. und zwar sind das Ortsnamen. Dabei gibt es nur das Problem, dass in der einen Tabelle der Ortsname als Kürzel hinterlegt ist, also z.B. "FRA" für Frankfurt, in der anderen Tabelle jedoch ein Join vorliegt. Dort steht also z.B. "1234". Das ist eine ID über die ich in einer Orts-Tabelle das Kürzel bekomme. Wie würde jetzt das SQL-Statement aussehen um zu prüfen welche Datensätze aus der Tabelle1 es auch in der Tabelle2 gibt bezogen auf das Ort-Attribut. Zur Vereinfachung: Also es gibt die Tabellen Tabelle1 Tabelle1ID TabelleOrt Zitieren
dr.dimitri Geschrieben 31. März 2008 Geschrieben 31. März 2008 Hi, du musst einfach nur über alle 3 Tabellen joinen: SELECT a.* FROM tabelle1 a, tabelleid ids, tabelleort ort WHERE ids.id=ort.id AND ort.ortname=a.ortname Die Spaltennamen musst natürlich entsprechend anpassen. Dim Zitieren
flashpixx Geschrieben 31. März 2008 Geschrieben 31. März 2008 Ich kann nur den Tipp geben, dass manchmal der Join über Stringfelder auch kleine Fußangeln hat: Case-(In)Sensitive Schreibweise, Leerzeichen, Umlaute usw. Sollte man beim Join berücksichtigen und ggf. auch eine Indizierung passend für die die Felder wählen Phil 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.