Ankündigung

Einklappen
Keine Ankündigung bisher.

UPDATE mit JOIN und Concat

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • UPDATE mit JOIN und Concat

    Hallo liebe Leute,

    ich möchte eine Tabelle in meiner DB Updaten und weiß nicht wirklich wie ich es realisieren soll. Mein Gedankengang bzw. funktioniert nicht.
    Code:
    UPDATE `tab1`
    SET tb1.`Teilnehmer_ID`= tb2.ID,
         tb1.`Code`= tb2.code
         FROM `tb1`
         JOIN `tb2` ON CONCAT(tb2.Vorname, ' ',tb2.Name) LIKE tb1.`Name`
         WHERE tb1.`Teilnehmer_ID`= ''
    kaann mir jemand einen Tipp geben?

  • #2
    update Tabelle_X set Tabelle_Y.spalte ... ist schon mal Murks. Willst Du nun Tabelle_X oder Tabelle_Y updaten?
    PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

    Kommentar


    • #3
      Mein Gott... Er hat ein Vokal zu viel drin, aber man kommt mit etwas Nachdenken darauf, dass er das richtige meint.
      Code:
      UPDATE t1
      SET t1.col1 = t2.col1
      FROM t1
      JOIN t2 ON t2.xxx like t1.yyy
      ist durchaus möglich, auch in pgSQL übrigens...

      Ob es nur an dem Vokal liegt, muß Du ausprobieren, Cyclestores
      Code:
      UPDATE
          `tb1`
      SET
          `tb1.`Teilnehmer_ID`= tb2.ID,
          `tb1.`Code`= tb2.code
      FROM
          `tb1`
      JOIN
          `tb2`
          ON CONCAT(`tb2`.`Vorname`, ' ',`tb2`.`Name`) LIKE `tb1`.`Name`
      WHERE
          `tb1`.`Teilnehmer_ID`= ''
      Competence-Center -> Enjoy the Informatrix
      PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

      Kommentar


      • #4
        Also laut MySQL-Handbuch ist die Reihenfolge UPDATE - JOIN - SET - WHERE.

        Kommentar


        • #5
          Das will ich nicht abstreiten, habe das nicht nachgesehen, die von mir verwendete Reihenfolge ist zumindest für T-SQL gültig.
          Ob MySQL das jetzt andersrum braucht, weiß ich nicht.


          EDIT:
          Du hast natürlich recht, habe es eben mal in MySQL ausprobiert, sieht doch etwas anders aus, wie bei T-SQL.
          Es gibt kein FROM und die Reihenfolge ist so, wie von Dir beschrieben:
          Code:
          UPDATE
              `tb1`
          JOIN
              `tb2`
              ON CONCAT(`tb2`.`Vorname`, ' ',`tb2`.`Name`) LIKE `tb1`.`Name`
          SET
              `tb1.`Teilnehmer_ID`= tb2.ID,
              `tb1.`Code`= tb2.code
          WHERE
              `tb1`.`Teilnehmer_ID`= ''
          Das Prinzip hat der TE dennoch aber schon richtig erkannt...
          Competence-Center -> Enjoy the Informatrix
          PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

          Kommentar


          • #6
            Zitat von Arne Drews Beitrag anzeigen
            Das will ich nicht abstreiten, habe das nicht nachgesehen, die von mir verwendete Reihenfolge ist zumindest für T-SQL gültig.
            Ob MySQL das jetzt andersrum braucht, weiß ich nicht.


            EDIT:
            Du hast natürlich recht, habe es eben mal in MySQL ausprobiert, sieht doch etwas anders aus, wie bei T-SQL.
            Es gibt kein FROM und die Reihenfolge ist so, wie von Dir beschrieben:
            Code:
            UPDATE
            `tb1`
            JOIN
            `tb2`
            ON CONCAT(`tb2`.`Vorname`, ' ',`tb2`.`Name`) LIKE `tb1`.`Name`
            SET
            `tb1.`Teilnehmer_ID`= tb2.ID,
            `tb1.`Code`= tb2.code
            WHERE
            `tb1`.`Teilnehmer_ID`= ''
            Das Prinzip hat der TE dennoch aber schon richtig erkannt...
            Danke, das war die Lösung. Es lag tatsächlich an der vertauschten/ Falschen Reihenfolge.

            Kommentar

            Lädt...
            X