Bernd: mysql. UPDATE einer Spalte mit Wert aus anderen tabelle

Hi,

geht sowas in mysql:

Update in Tabelle1 die Spalte 'Zeit' mit dem Wert der Spalte 'Zeit' aus Tabelle2 mit derselben ID.

?

Tabelle 1:
ID, bla, blub, Zeit

Tabelle2:
ID, bla, bli, blo, blub, Zeit

Hintergrund:

Mir hats in Tabelle1 die Zeitspalte zerhauen. Aber in Tabelle2 habe ich die originalen Zeiten, zugehörend zu der jeweiligen ID noch gebackuped. Daher möchte ich nun quasi die Zeitspalte der Tabelle2 in Tabelle1 übertragen, natürlich in Relation zur ID.

Schönen Abend, Bernd

  1. Mir hats in Tabelle1 die Zeitspalte zerhauen. Aber in Tabelle2 habe ich die originalen Zeiten,

    Du hast in zwei Spalten den gleichen Wert? Das ist IMO nicht sinnvoll, da solch redundante Werte zu Problemen führen können, wennsie getrennt verändert werden aber gleich sein müssten.

    zugehörend zu der jeweiligen ID noch gebackuped. Daher möchte ich nun quasi die Zeitspalte der Tabelle2 in Tabelle1 übertragen, natürlich in Relation zur ID.

    Sollte mit nem Subselect gehen. Ansonsten hilft ein kleines Script in PHP, Perl, Bash, Ruby oder was du bevorzugst.

  2. Hallo,

    geht sowas in mysql:

    Update in Tabelle1 die Spalte 'Zeit' mit dem Wert der Spalte 'Zeit' aus Tabelle2 mit derselben ID.

    ja.

    Tabelle 1:
    ID, bla, blub, Zeit

    Tabelle2:
    ID, bla, bli, blo, blub, Zeit

    Mir hats in Tabelle1 die Zeitspalte zerhauen. Aber in Tabelle2 habe ich die originalen Zeiten, zugehörend zu der jeweiligen ID noch gebackuped. Daher möchte ich nun quasi die Zeitspalte der Tabelle2 in Tabelle1 übertragen, natürlich in Relation zur ID.

    nicht schwer, da ID Träger des Primärschlüssels, somit in den Tabellen eindeutig ist. Hier ist ein Join das Mittel der Wahl:

    UPDATE  
        Tabelle1  
    INNER JOIN  
        Tabelle2  
    USING (ID)  
    SET  
        Tabelle1.ID = Tabelle2.ID  
    
    

    sollte es tun.

    Freundliche Grüße

    Vinzenz

    1. Hi,

      UPDATE

      Tabelle1
      INNER JOIN
          Tabelle2
      USING (ID)
      SET
          Tabelle1.ID = Tabelle2.ID

      
      >   
      > sollte es tun.  
        
      Das dürfte doch eine Null-Nummer sein.  
        
      Bei den Datensätzen, bei denen in Tabelle1 und Tabelle2 die IDs identisch sind (JOIN USING (ID)) wird die ID der Tabelle1 auf die ID der Tabelle2 gesetzt, die aber wegen der JOIN-Bedingung identisch ist.  
        
      cu,  
      Andreas
      
      -- 
      [Warum nennt sich Andreas hier MudGuard?](http://MudGuard.de/)  
      [O o ostern ...](http://ostereier.andreas-waechter.de/)  
        
      Fachfragen per Mail sind frech, werden ignoriert. Das Forum existiert.