Autor Thema: eine klevere SQL  (Gelesen 1464 mal)

Offline Steffen_Albrecht

  • Senior Mitglied
  • ****
  • Beiträge: 300
  • Geschlecht: Männlich
  • Trübsal ist nicht das Einzige was man blasen kann!
eine klevere SQL
« 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




Offline smokyly

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.169
  • Geschlecht: Männlich
  • Nicht jeder ist ersetzbar.
Re:eine klevere SQL
« Antwort #1 am: 24.11.03 - 12:36:14 »
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
Geri

Offline Steffen_Albrecht

  • Senior Mitglied
  • ****
  • Beiträge: 300
  • Geschlecht: Männlich
  • Trübsal ist nicht das Einzige was man blasen kann!
Re:eine klevere SQL
« Antwort #2 am: 24.11.03 - 14:56:53 »
Super!
Genau sowas hab ich gemeint!
Danke!  :D

Offline smokyly

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.169
  • Geschlecht: Männlich
  • Nicht jeder ist ersetzbar.
Re:eine klevere SQL
« Antwort #3 am: 24.11.03 - 15:07:24 »
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 :( ???
« Letzte Änderung: 24.11.03 - 15:16:19 von smokyly »
Geri

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz