Hi Fabian,
Das Problem ist dann nur noch, dass ich durch diese Art von Abfragen,
sobald ich sie einmal modifizieren möchte, nicht mehr durchsteige.
hm - bei Deiner Notationsweise würde ich auch nicht mehr durchsteigen. ;-)
Ich formatiere diesen String mal ein bißchen um:
$sql = 'SELECT s.int_titel, s.int_beschreibung, s.ref_code, z.zeit_ende '
. 'FROM stellenanzeigen as s, '
. 'zeitfunktion_stellenanzeigen as z '
. 'INNER JOIN stellen_id_ordner_id as so ON (s.stellen_id = so.stellen_id) '
. 'INNER JOIN ordnerid_uid as o ON (so.ordner_id = o.ordner_id) '
. 'WHERE ( (o.uid = ' . $db_handle.quote($UID) . ' '
. 'AND (o.ordner_id = ' . $db_handle.quote($s_ordner_id) . ' '
. 'AND (z.stellen_id = ' . $db_handle.quote('s.stellen_id') . '));';
(etwaige Syntaxfehler bitte wegdenken ;-)
Mit lokalen Alias-Namen für die Tabellen, sinnvoller Einrückung und der
richtigen JOIN-Variante wird der vorher erschreckende SQL-Lindwurm plötz-
lich ziemlich "handzahm".
Denn vermutlich kann man mit irgend einer der vielen JOIN-Varianten noch
die eine oder andere Klausel weg bekommen (wenn Du jeweils über gleich-
namige Spalten JOINst, dafür gibt es wohl eine eigene Bezeichnung ... ?).
Dein Statement geht also wahrscheinlich noch kürzer zu notieren.
Ach ja, Du darfst in Deinen Quelltext natürlich auch zu jeder dieser Zeilen
einen Perl-Kommentar schreiben, warum Du da was tun wolltest.
So ein SQL-Statement ist nämlich von der semantischen Komplexität vergleich-
bar mit einem Perl-Programm von vielen hundert Zeilen! Das sollte Dir eine
Menge Kommentar wert sein.
Das alles gehört zu einem guten Programmierstil.
Du schreibst Deinen Quelltext nur einmal, aber Du liest ihn immer wieder
(womöglich müssen das auch noch andere tun, weia!).
Also schreibe ihn so, daß es Dir Spaß macht, ihn auch nach einem Jahr
nochmal zu lesen. Du wirst sehen, auf die Dauer lohnt sich das.
Viele Grüße
Michael