5 Stimmen

Mysql-Werte aktualisieren

Ich verwende zwei Tabellen in der Datenbank. Die erste Tabelle sieht wie folgt aus:

   id    |   msg_id   |     user   |   date   
-------------------------------------------------
   01    |    122     |    user 1  | 2011-04-01
   02    |    453     |    user 2  | 2011-04-03
   03    |    124     |    user 3  | 2011-04-05

Und die zweite Tabelle sieht so aus:

       id    |   msg_id   |     status   | 
   ----------------------------------------
       01    |      0     |       1      | 
       02    |      0     |       1      | 
       03    |     124    |       1      | 

Ich möchte alle Zeilen mit dem Wert "0" (Spalte "msg_id") in der zweiten Tabelle anhand der msg_id-Datensätze aus der ersten Tabelle aktualisieren. Ist es möglich, dies mit einer einzigen Abfrage zu tun?

Das Ergebnis sollte wie folgt aussehen:

       id    |   msg_id   |     status   | 
   ----------------------------------------
       01    |    122     |       1      | 
       02    |    453     |       1      | 
       03    |    124     |       1      |

1voto

Senthil Punkte 5090
UPDATE table1 AS t1, table2 AS t2
SET t2.msg_id=t1.msg_id
WHERE t1.id = t2.id and t2.msg_id = 0;

0voto

fancyPants Punkte 49011
UPDATE secondTable 
SET msg_id = (SELECT msg_id FROM firstTable WHERE firstTable.msg_id = secondTable.msg_id)
WHERE msg_id = 0;

0voto

Quassnoi Punkte 396418
UPDATE  table2 t2
JOIN    table1 t1
ON      t2.id = t2.id
SET     t2.msg_id = t1.msg_id
WHERE   t2.msg_id = 0

0voto

diEcho Punkte 51956

TRY

UPDATE table2 t2  SET msg_id = (SELECT msg_id 
  FROM table1 t1 where t2.id = t1.id AND t2.msg_id=0)

0voto

Maulik Vora Punkte 2463
UPDATE secondTable as st , firstTable as ft set st.msg_id = ft. msg_id WHERE ft.id = st.id
and st.msg_id = 0;

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X