Zum Inhalt springen

update auf andere tabelle per sql


Tobe

Empfohlene Beiträge

Hallo,

ich hab 2 Tabellen und in die eine soll ein update gemacht werden auf die andere aber nur auf die datensätze wie in der anderen tabelle ist.

so ungefähr nur das es so nicht geht....

update [tabelle1]

set feld2 = [tabelle2.feld2]

where [tabelle1.feld1] = [tabelle2.feld1];

also in der tabelle1 sind mehrere datensätze... und ich will nur paar davon ändern und die änderung die ist auf der anderen tabelle und die will ich jetzt einfach in die andere tabelle so zu sagen aktualisieren... das aber nur die bestimmten felder die im feld1 den gleichen namen haben aber die anderen felder feld2 unteschiedlich sind...

war des irgendwie zu kompliziert beschrieben?

ich such halt die syntax...

das er halt net per update alle datensätze ändert sonder nur die mit dem gleichen namen im feld1

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi Tobe !

Ich suche auch schon eine Weile nach einer derartigen Lösung.

Leider muß ich dir sagen, dass es (meiner Meinung nach und auch nach Norbert Denne *g*) "keine Möglichkeit gibt, Daten über mehrere Tabellen hinweg zu verändern" ! :(

Das heißt, du kannst beim "SET" nicht auf Felder anderer Tabellen referenzieren.

Ich verstehe auch nicht wirklich, warum das nicht gehen soll...

Habe schon unzählige Male herumexperimentiert mit diversen Views, Subselect oder Joins solche Updates zu bewerkstelligen...bin aber leider kläglich gescheitert.

Vielleicht gibt´s hier ja wirklich jemanden, der ne Lösung kennt!

Ich wär auch überaus dankbar dafür...

In diesem Sinne...

Greetz,

S.E.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ahoi nochmal...

Natürlich GIBT es eine Lösung für diese Art Problem!

Ich bin vorhin davon ausgegangen, dass du die Alternative natürlich kennst, aber als ich mir deinen Post nochmals durchgelesen habe war ich mir da nicht mehr ganz so sicher...

Also, auf die Gefahr hin, dass ich dir Zeug erzähle, das du ohnehin bereits weißt:

Ich hab für diese Sache immer ein kleines Hilfsprogramm.

Darin befindet sich ein Cursor, der die benötigte WHERE-Klausel enthält und mir das Feld zurückliefert, das ich in der anderen Tabelle updaten möchte. In ner Schleife wird dann per Fetch der Cursor abgearbeitet und jeweils der Update auf die andere Tabelle mit dem entsprechenden Feld durchgeführt. So mach ich das zumindest immer! Wahrscheinlich gibt´s (wie fast immer) ne komfortablere Lösung, aber immerhin funktioniert´s ! :D

Naja, vielleicht rückt ja doch noch jemand nen passenden SQL raus...

-> dann kann ich mein Hilfsprogramm ins Nirvana schicken ! :cool:

Greetz

S.E.

Link zu diesem Kommentar
Auf anderen Seiten teilen

update [tabelle1]

set feld2 = [tabelle2.feld2]

where [tabelle1.feld1] = [tabelle2.feld1];

ich habe deine erklärung nicht ganz verstanden, aber anhand des statements oben denke ich mal, du suchst das hier:

update tabelle1 t1 set feld2 = (select t2.feld2 from tabelle2 t2 where t1.feld1 = t2.feld1);

-j

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 2 Wochen später...
ich habe deine erklärung nicht ganz verstanden, aber anhand des statements oben denke ich mal, du suchst das hier:

update tabelle1 t1 set feld2 = (select t2.feld2 from tabelle2 t2 where t1.feld1 = t2.feld1);

-j

Hi Jasper !

Funktioniert das bei dir tatsächlich !?

Mit DB2 habe ich mit dem Sub-Select in der SET-Anweisung kein Chance...

Hast du das ausprobiert ? FUNKTIONIERT das tatsächlich so ?

Ich meine...die Syntax an sich liegt natürlich auf der Hand, aber funktionieren

tut das bei mir so leider nicht ! :(

Na egal...

Ich benutz halt denn doch weiterhin mein Prog ! :D

Grüßle

S.E.

Link zu diesem Kommentar
Auf anderen Seiten teilen

mit Oracle kein Problem:

SQL> select * from tabelle1;

FELD1 FELD2

---------- ----------

1 1

SQL> select * from tabelle2;

FELD1 FELD2

---------- ----------

1 2

SQL> update tabelle1 t1 set feld2 = (select t2.feld2 from tabelle2 t2 where t1.feld1 = t2.feld1);

1 row updated.

SQL> select * from tabelle1;

FELD1 FELD2

---------- ----------

1 2

wundert mich ehrlich, dass das mit DB2 nicht geht.

-j

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...