WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Programmierung

Programmierung Rat & Tat für Programmierer

Microsoft KARRIERECAMPUS

Antwort
 
Themen-Optionen Ansicht
Alt 31.05.2007, 13:27   #1
Nestrus
Elite
 
Registriert seit: 01.07.2000
Alter: 40
Beiträge: 1.400


Nestrus eine Nachricht über ICQ schicken
Standard oracle: Update und join?

Hallo,

ich habe eine Tabelle, in der ich bei den Feldern, die eine gewisse Bedingung erfüllen den Wert aus einer anderen Tabelle eintragen soll.

In hätte das so gemacht:
UPDATE tabelle1 a, tabelle2 b
SET a.feld = b.feld
WHERE a.id = b.id and
a.bedingungsefeld = 1;

Jetzt habe ich per Internet schon mal herausgefunden, dass dies mit Oracle nicht geht, aber wie kann ich dort so etwas lösen?

Vielen Dank im Voraus für eure Hilfe und schöne Grüße
Nestrus
____________________________________
"reden 2 unsinn im wcm forum, meint der dritte is eh offtopic"
(Gifty am 14. Apr 2002 um 22:47 in " WCM Rat & Tat Forum > Meinung > Guru, e-Zitate & Off Topic > Kommt ein Mann zum Arzt...")
Nestrus ist offline   Mit Zitat antworten
Alt 31.05.2007, 15:47   #2
opa12
Hero
 
Registriert seit: 07.10.2002
Beiträge: 872


Standard

ich häts so gemacht

update tabelle1 set feld =(select feld from tabelle2 where tabelle1.id=tabelle2.id) where bedingungsefeld=1;
opa12 ist offline   Mit Zitat antworten
Alt 01.06.2007, 11:27   #3
Nestrus
Elite
 
Registriert seit: 01.07.2000
Alter: 40
Beiträge: 1.400


Nestrus eine Nachricht über ICQ schicken
Standard

Na klar, mit 'nem subselect.

Mir war gar nicht bewusst, das ich im subselect auch felder der übergeordneten abfrage verwenden kann. (Mein SQL ist wohl eingerosteter, als ich dachte.)

Wunderbar, ich hab nämlich auch gerade das Problem gehabt, dass
update tabelle1 set feld = (select zahl2 from tabell2)*zahl1;
nicht geht, aber jetzt weiß ich dass es einfach
update tabelle1 set feld = (select zahl2*zahl1 from tabelle2);
heißt.

Danke!
____________________________________
"reden 2 unsinn im wcm forum, meint der dritte is eh offtopic"
(Gifty am 14. Apr 2002 um 22:47 in " WCM Rat & Tat Forum > Meinung > Guru, e-Zitate & Off Topic > Kommt ein Mann zum Arzt...")
Nestrus ist offline   Mit Zitat antworten
Alt 01.06.2007, 11:44   #4
Nestrus
Elite
 
Registriert seit: 01.07.2000
Alter: 40
Beiträge: 1.400


Nestrus eine Nachricht über ICQ schicken
Standard

Wenn ich schon am fragen bin, gibt es eine lösung für:

update tabelle set (feld1, feld 2)=
((select feld3 from tabelle2 where bedingung = 1),
(select feld3 from tabelle2 where bedingung = 2));

Oder geht dass nur mit zwei updates?
____________________________________
"reden 2 unsinn im wcm forum, meint der dritte is eh offtopic"
(Gifty am 14. Apr 2002 um 22:47 in " WCM Rat & Tat Forum > Meinung > Guru, e-Zitate & Off Topic > Kommt ein Mann zum Arzt...")
Nestrus ist offline   Mit Zitat antworten
Alt 01.06.2007, 12:58   #5
opa12
Hero
 
Registriert seit: 07.10.2002
Beiträge: 872


Standard

versuch mal

update tabelle set
feld1=(select feld3 from tabelle2 where bedingung = 1),
feld2=(select feld3 from tabelle2 where bedingung = 2);
opa12 ist offline   Mit Zitat antworten
Alt 01.06.2007, 14:10   #6
Nestrus
Elite
 
Registriert seit: 01.07.2000
Alter: 40
Beiträge: 1.400


Nestrus eine Nachricht über ICQ schicken
Standard

Oh klar, danke.
Hat zwar ziemlich lange gedauert (38s für nur 33.482 Zeilen) aber es funktioniert.

Ich bin wohl nur ein paar Dinge etwas anders gewohnt, als man es bei Oracle schriebt.
____________________________________
"reden 2 unsinn im wcm forum, meint der dritte is eh offtopic"
(Gifty am 14. Apr 2002 um 22:47 in " WCM Rat & Tat Forum > Meinung > Guru, e-Zitate & Off Topic > Kommt ein Mann zum Arzt...")
Nestrus ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 06:09 Uhr.


Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Forum SEO by Zoints
© 2009 FSL Verlag