2017-09-08 1 views
2

Ich habe 2 Tabellen: Tabelle A (ColA1, ColA2), Tabelle B (ColB1. ColB2).Wie aktualisiere ich Spalte A2 von Tabelle A (colA1, colA2) mit Daten von B2, wenn Tabelle B (colB1, colB2) übereinstimmenden Wert von Tabelle A hat?

ColA1 ColA2 |  ColB1  ColB2 
1    |  1   abc 
2    |  2   def 
4    |  3   ghi 
7    |  4   jkl 
       |  7   xxx 

Jetzt möchte ich Col2 mit ColB2 aktualisieren, wo es Werte von COLA1 = ColB1 entsprechen. So sollte die Ausgabe wie sein:

ColA1 ColA2 |  ColB1  ColB2 
1   abc |  1   abc 
2   def |  2   def 
4   jkl |  3   ghi 
7   xxx |  4   jkl 

Wie kann ich das ohne Verfahren tun?

Antwort

1

Ja, Sie können dies mit einem JOIN tun. Hier ist ein Beispiel von etwas, das ich gestern ...

update compress_test c 
join information_schema.tables t  
on c.table_schema = t.table_schema and c.table_name = t.table_name  
set c.compress_mb = Round((t.DATA_LENGTH+t.INDEX_LENGTH)/1024/1024) 

wo t.table_schema = 'test'
und t.row_format = 'KOMPRIMIERTES';

so wollen Sie so etwas wie:

update a 
join b on a.cola = b.cola 
set a.colb = b.colb 
where a.colb is null 

Obwohl ich nicht sicher bin, wie Sie diese Werte erhalten:

ColA1 ColA2 
4   jkl 
7   xxx 

Sie sollten immer noch leer sein/null auf, was Sie fragten .

+0

In ColA2 stimmen die Werte mit denen von ColB2 überein, wo ColA1- und ColB1-Werte übereinstimmen. –

+0

arbeitete für mich nach dem Entfernen, wo Bedingung. Vielen Dank –

Verwandte Themen