2016-07-15 7 views
0

Ich benutze diese Seite die ganze Zeit, um Antworten auf meine Fragen zu finden, aber dies ist das erste Mal, dass ich eines frage.mysql - Ergebnisse der Abfrage in dieselbe Tabelle mit Joins einfügen

Ich habe zwei Tabellen und will beiden Tabellen abzufragen und die Ergebnisse in zwei Spalten auf Tabelle 1. So etwas einfügen:

SELECT a.column1 from table1 a LEFT Join (SELECT 'column1' from 'table2') AS a ON where a.column1 like '%column1.table2%'; 

Grundsätzlich legen Sie dann das Ergebnis in Column5 und Column6 auf Tabelle 1

Ich weiß, dass dies nicht korrekt ist, da es nicht funktioniert und es nichts aktualisieren wird. Zum Testen führe ich Select-Anweisungen aus, die überprüft werden müssen, bevor der Update-Befehl ausgeführt wird. Eine andere Art zu sagen, was ich brauche, wäre:

Wenn Spalte1 in Tabelle1 ist wie Spalte1 in Tabelle2 dann Update Spalte5 in Tabelle1 mit entsprechenden Eintrag von Spalte2 in Tabelle2 und Update Spalte6 in Tabelle1 mit Spalte7 von Tabelle1 mit entsprechenden Eintrag in Spalte3 von Tabelle 2;

Ich realisiere, dass dies nicht die beste Erklärung ist, aber das ist der beste Weg, um zu erklären, was ich will. Bitte stellen Sie Fragen, wenn mehr Informationen benötigt werden und ich werde mein Bestes geben, um zu erklären.

Danke für jede Eingabe, die Sie haben.

Antwort

0

In MySQL können Sie Multi-Table-Updates in einer einzigen Update-Anweisung tun schließt sich in der Tabelle Liste:

update t1 inner join t2 on t1.column1 like concat('%',t2.column1, '%') 
set t1.column5=t2.column2, t1.column6=t2.column7 

Jedoch, wie verwendet, ist nicht unbedingt die beste Idee, da mehr als 1 Datensätze von T2 kann mit demselben Datensatz innerhalb von t1 übereinstimmen, daher kann ein einzelner t1-Datensatz mehrmals während eines einzelnen Laufs aktualisiert werden.

Ihre Beschreibung, welche t1 Felder um welches Feld von t2 aktualisiert werden sollen, ist ungenau, kann die Logik dort nicht wirklich erklären.

+0

Dies funktioniert perfekt. Vielen Dank !!!! – noobie01

Verwandte Themen