MySQL - UPDATE-Abfrage basierend auf SELECT-Abfrage
Muss ich schauen (aus der gleichen Tabelle), wenn es eine Assoziation zwischen zwei Ereignissen (basierend auf dem Datum-Zeit.
Einem Satz von Daten enthält das End-Datum-Zeit bestimmter Ereignisse und der andere Satz von Daten enthalten, die ab-Datum und-Zeit für andere Veranstaltungen.
Wenn der erste Fall abgeschlossen, bevor die zweite Veranstaltung, dann würde ich Sie gerne verlinken.
Was ich habe, so weit ist:
SELECT name as name_A, date-time as end_DTS, id as id_A
FROM tableA WHERE criteria = 1
SELECT name as name_B, date-time as start_DTS, id as id_B
FROM tableA WHERE criteria = 2
Dann schließe ich mich Ihnen:
SELECT name_A, name_B, id_A, id_B,
if(start_DTS > end_DTS,'VALID','') as validation_check
FROM tableA
LEFT JOIN tableB ON name_A = name_B
Kann ich dann basierend auf meinem validation_check Feld, führen Sie eine UPDATE-Abfrage mit der SELECT verschachtelt?
Kommentar zu dem Problem
Ich bin mir nicht sicher, was Sie Fragen? Sind Sie versuchen, herauszufinden, wie zu tun, ein update mit einer SQL-Select?
InformationsquelleAutor der Frage John M | 2009-08-11
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie tatsächlich tun dies, gibt es zwei Möglichkeiten:
MySQL-update-join-syntax:
ANSI-SQL-syntax:
Holen je nachdem was man scheint, die meisten natürlich für Euch.
InformationsquelleAutor der Antwort Eric
Hoffe, das funktioniert für Sie.
InformationsquelleAutor der Antwort massquote
Einfach in MySQL:
InformationsquelleAutor der Antwort Sergio
Wenn jemand sucht zum aktualisieren von Daten aus einer Datenbank in eine andere, egal welche Tabelle, auf die Sie abzielen, muss es einige Kriterien, um es zu tun.
Dieser ist besser und sauber für alle Ebenen:
Traaa! Es funktioniert Super!
Mit den oben verstehen, können Sie ändern Sie die Felder " und "auf" Kriterien, um Ihre Arbeit zu erledigen. Sie können auch die überprüfungen durchführen, dann ziehen Sie die Daten in die temp-Tabelle(N) und führen Sie dann das update mit der oben genannten syntax ersetzen Sie Ihre Tabellen-und Spaltennamen.
Hoffe es klappt, wenn nicht lass es mich wissen. Ich Schreibe eine genaue Abfrage für Sie.
InformationsquelleAutor der Antwort KMX
Hoffe, dies wird Ihnen helfen, in einem Fall, wo Sie übereinstimmen, und aktualisieren Sie zwischen zwei Tabellen.
InformationsquelleAutor der Antwort Don
Ich fand diese Frage in der Suche für meine eigene Lösung zu einer sehr komplexen Verknüpfung. Dies ist eine alternative Lösung, um eine komplexere version des Problems, ich dachte, das könnte nützlich sein.
Habe ich benötigt, um füllen Sie das Feld product_id in der Aktivitäten-Tabelle, wo Tätigkeiten stehen nummeriert in einer Einheit, und die Einheiten sind nummeriert in einer Ebene (gekennzeichnet mit einem string ??N), so dass man sich identifizieren kann Aktivitäten mit einem SKU ie L1U1A1. Diese SKUs werden dann in einer anderen Tabelle gespeichert.
Identifizierte ich die folgenden, um eine Liste der activity_id vs product_id:-
Fand ich, dass die zu Komplex war, um in einem SELECT in mysql, so dass ich erstellt eine temporäre Tabelle, und trat, dass mit der update-Anweisung:-
Ich hoffe, jemand findet das nützlich
InformationsquelleAutor der Antwort sibaz
Aktualisieren können Sie Werte aus einer anderen Tabelle mit inner join wie diesem
Folgen Sie hier, um zu wissen, wie Sie diese Abfrage http://www.voidtricks.com/mysql-inner-join-update/
oder Sie können verwenden, wählen Sie als Unterabfrage dazu
Abfrage in Einzelheiten hier http://www.voidtricks.com/mysql-update-from-select/
InformationsquelleAutor der Antwort Anand Roshan
InformationsquelleAutor der Antwort bhavik
Können Sie verwenden:
InformationsquelleAutor der Antwort SergeyUr
Zur gleichen Tabelle,
InformationsquelleAutor der Antwort Gnanam pragasam
Hatte ich ein Problem mit doppelten Einträgen in einer Tabelle selbst. Unten ist die Ansätze wurden für mich arbeiten. Es wurde auch befürwortet, @sibaz.
Schließlich habe ich es gelöst, anhand der folgenden Fragen:
Die select-Abfrage wird gespeichert, in eine temp-Tabelle
Den temp-Tabelle verknüpft wird, in die update-Abfrage.
Ich nicht sehr erfahren mit SQL-bitte beraten der bessere Ansatz ist, wissen Sie.
Oben genannten Fragen sind für MySql-server.
InformationsquelleAutor der Antwort Rick