Viennamade: Ersatz für Subselect

Beitrag lesen

Hallo Ilja!

Ich werd noch verrückt - Du auch ? g
Ausgehend von meinem letzten Versuch der gute Ergebnisse brachte, aber nur das Verknüpfungsfeld in bitxt abfragte und daher keinen Join auf "Sprachen" hatte
»
SELECT bi.osname,bi.pxhoehe,bi.pxbreite,bitxt.alttag,bitxt.title FROM Bilder as bi LEFT OUTER JOIN Bildertexte as bitxt ON (bi.PicNr = bitxt.BildNr AND bitxt.Sprache = 2 OR bitxt.Sprache is null) WHERE bi.osname = 'x96.gif'
«

und Deiner Antwort ...

das "OR bitxt.Sprache is null" hat da nichts zu suchen, einfach weglassen.und was die dritte tabelle betrifft, genauso verfahren, sprich einen left join und die kriterien mit die join bedingung ON (...) aufnehmen in etwa so:

LEFT JOIN sprache AS s ON (bitxt.Sprache = s.LangNr AND s.Kuerzel = 'DE')

habe ich folgendes probiert:
SELECT bi.osname,bi.pxhoehe,bi.pxbreite,bitxt.alttag,bitxt.title FROM Bilder as bi LEFT OUTER JOIN Bildertexte as bitxt ON (bi.PicNr = bitxt.BildNr AND bitxt.Sprache = 'DE') LEFT JOIN Sprachen AS s ON (bitxt.Sprache =s.LangNr AND s.Kuerzel ='DE') WHERE bi.osname = 'x96.gif'

Da erhielt ich immer einen Datensatz, aber _nie_ Werte bitxt.title oder bitxt.alttag.

Das erschien mir auch logisch, denn "bitxt.Sprache = 'DE'" in der ON-Clause des ersten Joins kann nie wahr sein, denn im Feld bitxt.Sprache steht ja nur 1 (für DE) oder 2 (für EN). Also nahme ich diese Bedingung raus und probierte:
SELECT bi.osname,bi.pxhoehe,bi.pxbreite,bitxt.alttag,bitxt.title FROM Bilder as bi LEFT OUTER JOIN Bildertexte as bitxt ON (bi.PicNr = bitxt.BildNr) LEFT JOIN Sprachen AS s ON (bitxt.Sprache =s.LangNr AND s.Kuerzel ='EN') WHERE bi.osname = 'x95.gif
Mit dem Ergebnis, daß ich immer einen Datensatz bekomme, aber mitunter falsche. Die Kombination x95.gif und englischer Bildertext des letzten Abfragestring gibt es gar nicht, aber ich erhalte den deutschen Bildertext.

Danke für Deine Hilfe,
Viennamade