stephan: MySQL-Statement

Hi,

hat jemand eine Idee, wie man das machen kann:

Ich habe einen LEFT-JOIN, der folgendes machen soll:

tab2.code = 'code.'tab1.code

wobei code. eine Konstante und tab1.code die Variable der jeweiligen Zeile ist. Wie kann ich das richtig machen? tab1.code ist zB 'hallo' und tab2.code müsste dann code.hallo sein.

Vielen Dank
Stephan

  1. yo,

    wobei code. eine Konstante und tab1.code die Variable der jeweiligen Zeile ist. Wie kann ich das richtig machen? tab1.code ist zB 'hallo' und tab2.code müsste dann code.hallo sein.

    klingt nach einem sehr ungünstigen daten-design. aber am besten du erklärst uns erst mal ausführlicher deine ausgangssituation, wie die tabellen genau aussehen, deren inhalte und was genau du raus haben willst.

    Ilja

    1. Hey,

      also die Tabelle sieht so aus

      tab1
      --------------
      id | code
      --------------
      1  | de

      tab2
      --------------
      code    | text
      --------------
      code.de | Deutschland

      Und dann möchte ich ein LEFT JOIN machen, der die Inhalte für ON(tab2.code = 'code'.tab1.code

      Nur eben, dass ich nicht weiß, wie ich diese Konstante mit dieser SQL-Variablen kombinieren kann.

      Danke schonmal!

      1. yo,

        Und dann möchte ich ein LEFT JOIN machen, der die Inhalte für ON(tab2.code = 'code'.tab1.code

        einen LEFT JOIN von welcher tabelle auf welche ? die reihenfolge ist hier wichtig.

        Nur eben, dass ich nicht weiß, wie ich diese Konstante mit dieser SQL-Variablen kombinieren kann.

        das hat wenig mit einer konstanten im qualifier zu tun, sondern wenn überhaupt im inhalt. dafür kannst du den inhalt von tab1.code mit der konstanten konkatinieren, was man in den meisten fällen mit einem doppelten pipe machen kann. das hängt aber von deinem jeweiligen dbms ab. ich vermute mal, du willst von tab1 ausgehend einen left join auf tab2 machen (der umgekehrte fall ist analog).

        SELECT *
        FROM tab1 t1
        LEFT JOIN tab2 t2 ON t2.code = 'code.' || t1.code
        ;

        allerdings weise ich noch mal darauf hin, dass dieses joinen höchstwahrscheinlich nicht optimal ist, weil hier offensichtlich keine künstlichen schlüssel verwendet wurden.

        Ilja