[linux-l] SQL

Volker Grabsch vog at notjusthosting.com
Do Okt 19 17:41:31 CEST 2006


On Wed, Oct 18, 2006 at 10:15:12AM +0200, Danijel Tasov wrote:
> Olaf Radicke wrote:
> > Ich habe eine SQL-Abfrage die ich bisher in zwei schritten gemacht habe:
> > 
> > 	SELECT berufs_id FROM stellen  WHERE stellen_id = 1 ;
> > 
> > Zurück bekomme ich eine Liste von berufs_id's. Als nächstes muss ich wissen 
> > welche Berufsbezeichnungen sich hinter den berufs_id verbirgt:
> > 
> > 	SELECT berufsbezeichnung FROM beruf WHERE berufs_id = 1 ;
> > 
> 
> Keiner kommt auf einen Sub-Select?
> 
> 	SELECT berufsbezeichnung FROM beruf WHERE berufs_id IN (
> 	  SELECT berufs_id FROM stellen where stellen_id = 1
> 	)

Man muss die Performance ja nicht mit Gewalt drosseln. Zumal das nun
noch unübersichtlicher ist, und außerdem die Möglichkeit verbaut,
noch andere Sachen aus der entsprechenden inneren Tabelle "stellen"
zu holen.

Es ist in der Tat ne Alternative, aber Sub-Selects sollte man IMHO
nur dann nehmen, wenn man sie wirklich braucht.

Ich meine, wenn ich ein Java-Programm schreibem dass die Zahlen von
1 bis 1.000.000 zusammenzählt, dann erzeuge ich ja auch nicht erst
einen Vektor oder ne Liste mit den 1.000.000 Zahlen, iteriere darüber,
und zeige das Ergebnis an. :-)

(bevor die Gauß-Kenner jetzt kommen: Jaja, man addiert auch nicht alle
Zahlen zusammen, sondern kommt mit einer Inkrementierung, einer
Multiplikation und einer Halbierung aus. Aber habt ihr euch schonmal
gefragt, wie man letzteres tut, ohne dabei den Zahlenbereich dabei
zu sprengen? Was ist, wenn das Ergebnis auf ner 32-bit-Maschine
ausgerechnet wird und genau ein 32 Bit groß ist? Dann wäre die
Multiplikation ne Katastrophe, aber die Addierschleife würde korrekt
arbeiten.)


Viele Grüße,

    Volker

-- 
Volker Grabsch
---<<(())>>---
Administrator
NotJustHosting GbR



Mehr Informationen über die Mailingliste linux-l