2016-05-22 17 views
0

Ich habe zwei Tabellen: und tableb. Beide haben drei Spalten mit der Bezeichnung columna, columnb, columnc.Wie aktualisiert man ein Feld einer Tabelle, die innerer Join einer anderen Tabelle in MySQL ist?

Jetzt möchte ich dies tun:

Wenn tablea.columnbtableb.columnb gleich, dann tablea.columnc gesetzt = tableb.columnc. Ich habe den SQL geschrieben und es funktioniert gut, aber ich denke, dass es einen besseren Weg geben muss, dies zu tun? Kann jemand mir helfen, meine SQL Aussage zu optimieren, oder gibt es andere Weise?

UPDATE tablea ta 
SET 
ta.columnc = (
       SELECT columnc FROM tableb 
       WHERE ta.columnb = tableb.columnb 
      ) 
WHERE ta.columnb IN (
        SELECT columnb FROM tableb 
        WHERE ta.columnb = tableb.columnb 
        ) 

Antwort

1

können Sie versuchen, diese einfache Abfrage

Update tablea ta,table tb set ta.columnc=tb.columnc where ta.columnb =tb.columnb; 
Verwandte Themen