UPDATE mit SELECT

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

  • UPDATE mit SELECT

    Hallo zusammen,

    ich bin leider nirgends fündig geworden und stehe seit Stunden auf dem Schlauch.

    Ich versuche eine Zeile (einen Datensatz) aus der Tabelle 'Bert' in der Tabelle 'Ernie' zu überschreiben:

    PHP-Code:
     $ueberschreiben mysql_query("UPDATE ernie AS e,
                                  (SELECT * FROM bert WHERE id='
    $id') AS b
                                  SET e.kekse=b.kekse)
                                  WHERE e.id = b.id"
    ); 
    Was ich schon alles ausprobiert habe:

    PHP-Code:
    $ueberschreiben  mysql_query("UPDATE ernie, bert
                                   SET ernie = bert
                                   WHERE bert.id='
    $id'
                                   AND ernie.id=bert.id"
    ); 

    Ich hoffe ihr könnt mir weiterhelfen!?
    Wenn man anfängt herumzuexperimentieren ist das ein ganz schlechtes Zeichen.
    Und an dem Punkt bin ich leider gerade.

    Für eure Hilfe und Anregungen im Voraus vielen Dank!

    Gruß
    Jofris

  • #2
    Re: UPDATE mit SELECT

    Original geschrieben von Jofris
    Hallo zusammen,

    ich bin leider nirgends fündig geworden und stehe seit Stunden auf dem Schlauch.

    Ich versuche eine Zeile (einen Datensatz) aus der Tabelle 'Bert' in der Tabelle 'Ernie' zu überschreiben:

    PHP-Code:
     $ueberschreiben mysql_query("UPDATE ernie AS e,
                                  (SELECT * FROM bert WHERE id='
    $id') AS b
                                  SET e.kekse=b.kekse)
                                  WHERE e.id = b.id"
    ); 
    Was ich schon alles ausprobiert habe:

    PHP-Code:
    $ueberschreiben  mysql_query("UPDATE ernie, bert
                                   SET ernie = bert
                                   WHERE bert.id='
    $id'
                                   AND ernie.id=bert.id"
    ); 

    Ich hoffe ihr könnt mir weiterhelfen!?
    Wenn man anfängt herumzuexperimentieren ist das ein ganz schlechtes Zeichen.
    Und an dem Punkt bin ich leider gerade.

    Für eure Hilfe und Anregungen im Voraus vielen Dank!

    Gruß
    Jofris
    PHP-Code:
    $ueberschreiben  mysql_query("UPDATE ernie
                                   SET ernie = ('SELECT * FROM bert WHERE id='
    $id')
                                   WHERE bert.id='
    $id'); 
    IRGENDWIE so ähnlich .. SO genau weiß ich das jetzt nicht aus dem kopf .. müsste ich mich jetzt selber schlau machen
    Gruß
    Uzu

    private Homepage

    Kommentar


    • #3
      Re: UPDATE mit SELECT

      PHP-Code:
      $ueberschreiben  mysql_query("UPDATE ernie, bert
                                     SET ernie = bert
                                     WHERE bert.id='
      $id'
                                     AND ernie.id=bert.id"
      ); 
      So ist es fast richtig. Siehe im Manual (etwas runter scrollen):
      Code:
      UPDATE items,month SET items.price=month.price
      WHERE items.id=month.id;

      Kommentar


      • #4
        Viielen Dank!

        Hallo UzumakiNaruto,

        vielen Dank für deinen Tipp. Werde ich ausprobieren!

        Hallo PHP-Desaster,

        vielen Dank für deine Hilfe! Dazu habe ich noch zwei Fragen:

        1) Muss ich nach dem SET alle Spaltennamen explizit aufführen oder reicht es wenn ich sowieso alle Spalten überschrieben haben möchte nur die beiden Tabellennamen aufzuführen?

        Also anstelle deiner Schreibweise:
        PHP-Code:
        SET ernie.spalte1=bert.spalte1ernie.spalte2=bert.spalte2ernie.spalte3=bert.spalte3 
        einfach für alle Spalten einer Tabelle:
        PHP-Code:
        SET ernie=bert 
        2) Durch deine WHERE-Schreibweise:
        PHP-Code:
        WHERE ernie.id=bert.id 
        werden da nicht sämtliche Zeilen (Datensätze), bei der die IDs der beiden Tabellen übereinstimmen abgeglichen.
        Ich möchte doch nur eine einzelne Zeile überschreiben?


        Für die weiter Hilfe im Voraus nochmals vielen, vielen Dank!


        Gruß
        Jofris

        Kommentar


        • #5
          Re: Viielen Dank!

          Original geschrieben von Jofris
          Hallo UzumakiNaruto,

          vielen Dank für deinen Tipp. Werde ich ausprobieren!

          Hallo PHP-Desaster,

          vielen Dank für deine Hilfe! Dazu habe ich noch zwei Fragen:

          1) Muss ich nach dem SET alle Spaltennamen explizit aufführen oder reicht es wenn ich sowieso alle Spalten überschrieben haben möchte nur die beiden Tabellennamen aufzuführen?

          Also anstelle deiner Schreibweise:
          PHP-Code:
          SET ernie.spalte1=bert.spalte1ernie.spalte2=bert.spalte2ernie.spalte3=bert.spalte3 
          einfach für alle Spalten einer Tabelle:
          PHP-Code:
          SET ernie=bert 
          2) Durch deine WHERE-Schreibweise:
          PHP-Code:
          WHERE ernie.id=bert.id 
          werden da nicht sämtliche Zeilen (Datensätze), bei der die IDs der beiden Tabellen übereinstimmen abgeglichen.
          Ich möchte doch nur eine einzelne Zeile überschreiben?


          Für die weiter Hilfe im Voraus nochmals vielen, vielen Dank!


          Gruß
          Jofris
          Code:
          UPDATE erne e, bert b SET
          e.feld1 = b.feld1,
          e.feld2 = b.feld2,
          e.feld3 = b.feld3
          WHERE e.feld0 = 1;
          
          UPDATE erne e, bert b SET
          e.feld1 = b.feld1,
          e.feld2 = b.feld2,
          e.feld3 = b.feld3
          WHERE e.feld0 = 4;
          dann müsstest du das SO machen ;-)
          Zuletzt geändert von UzumakiNaruto; 24.05.2008, 14:10.
          Gruß
          Uzu

          private Homepage

          Kommentar


          • #6
            Wau

            Hallo UzumakiNaruto,

            vielen Dank, das ist aber mal eine schnelle Antwort

            Werde ich gleich einmal ausprobieren.


            Danke! Gruß
            Jofris

            Kommentar


            • #7
              Vielen Dank!

              Hallo zusammen,

              vielen Dank! Mit eurer Hilfe hat es jetzt endlich wie folgt geklappt:
              PHP-Code:
                      $ueberschreiben mysql_query("UPDATE ernie a, bert b
                                             SET a.spalte1= b.spalte1, 
                                                 a.spalte2= b.spalte2,
                                                 a.spalte3= b.spalte3
                                             WHERE b.id='
              $id'
                                             AND a.id=b.id"
              ); 
              Nochmal vielen Dank und schönes Wochenende!!!


              Gruß
              Jofris

              Kommentar

              Lädt...
              X