Das Notes Forum
Sonstiges => Offtopic => Thema gestartet von: Steffen_Albrecht am 24.11.03 - 09:47:02
-
Hallo,
ich habe mal ne Frage zu einer SQL, die ich aus einem Script heraus ausführen möchte:
Ich habe insgesamt 3 Tabellen (auf Firebird).
hh_users: ID Ident Name Vorname
dd_delittime: ID Ident Name
hh_link: IDu IDd
Die Tabellen hh_users und hh_delittime sind über dei Tabelle hh_link mit einander verknüpft.
jetzt soll aber hh_delittime.Name gleich hh_users.Vorname gesetzt werden. Aber nur überall da, wo die Datensätze mit einander verknüpft sind.
Hat evtl. jemand eine Idee wie da die SQL aussehen muss?
Danke & Gruß
Steffen
-
Meinst Du in etwa das hier:
update dd_delittime a set a.name=(select b.vorname from hh_users b,hh_link c
where c.idu=b.id and c.idd=a.id)
where a.id=(select a.id from hh_users b,hh_link c
where c.idu=b.id and c.idd=a.id)
Getestet unter Oracle 8, ohne Performance-Optimierung und unter Annahme vom Eindeutigkeiten und auch nur auf die Schnelle aus dem Fingern gesaugt......
Gruß
Geri
-
Super!
Genau sowas hab ich gemeint!
Danke! :D
-
Das war's? Cool, das war einfach ;)
Und wenn die Indexe richtig gesetzt sind, sollte das bei einem größeren Datenumfang trotz des seltsamen Codes performant laufen (ohne Gewähr, hatte nur 10 Testdaten zur Hand).
Jo denn, viel Erfolg noch.
Nachtrag:
Uuups, nicht ganz, er macht einen Full Table Access auf die DD_DELITTIME (trotz Index auf Feld "ID" und entsprechenden anderen Indexes) - das nicht gut, wenn die Datenmenge sehr groß ist..
Jo mei, man kann nicht alles haben :( ???