yo,
SELECT bi.osname,bi.pxhoehe,bi.pxbreite,bitxt.alttag,bitxt.title,s.Kuerzel FROM Bilder as bi LEFT JOIN Bildertexte as bitxt ON (bi.PicNr = bitxt.BildNr) INNER JOIN Sprachen AS s ON (bitxt.Sprache = s.LangNr) WHERE bi.osname ='x96.gif' AND (s.Kuerzel = 'EN')
der Outer Joins ist nur notwendig notwendig, wenn es zu einem bild keine entsprechenden bildertext gibt, was ich aber an deinen tabellen auf den ersten blick nicht herleiten kann. es sieht so aus, als wenn jedes bild auch einen tex hat. da du das aber als problem erwähnst, scheint es der fall zu sein. damit wird dein problem der zweite INNER JOIN sein. wenn du erst eien LEFT JOIN machst, werden eventuell NULL werte eingesetzt. und diese NULL werte werden auch bei einem INNER JOIN nie auf gleichheit teffen.
zum anderen sieht dein daten-design auf den ersten blick nicht "sauber" aus, aber das ist mehr ein gefühl.
SELECT ....
FROM bilder AS bi
LEFT JOIN bildertexte AS bitxt ON (bi.picnr = bitxt.bildnr)
LEFT JOIN sprachen AS s ON (bitxt.sprache = s.langnr)
WHERE bi.osname = 'x96.gif' AND s.kuerzel= 'EN'
Ilja