Hallo Ilja!
Leider.
SELECT ....
FROM tabelle_bilder AS b
LEFT JOIN tabelle_bildertexte AS bt ON (b.picnr = bt.bildnr)
LEFT JOIN tabelle_sprachen AS s ON (bt.sprache = s.langnr AND s.kuerzel='DE')
WHERE b.osname='Kuh.jpg'oder kurzform
SELECT ....
FROM tabelle_bilder AS b
LEFT JOIN tabelle_bildertexte AS bt ON (b.picnr = bt.bildnr AND bt.sprache='1')
WHERE b.osname='Kuh.jpg'beides sollte in jedem fall mindestens einen datensatz liefern.
Die Kurzform funktioniert perfekt. Die gewünschte Langform leider nicht.
----------------------------- -------------------------------------------- -----------------
Tabelle_Bilder Tabelle_Bildertexte Tabelle_Sprachen
----------------------------- -------------------------------------------- -----------------
PicNr osname pxhoehe PicID Bildnr Text Sprache LangNr Kuerzel
[PRIMARY] [PRIMARY] [PRIMARY]
----------------------------- -------------------------------------------- -----------------
1 Kuh.jpg 400 1 1 Das ist eine Kuh 1 1 DE
2 Hund.jpg 450 2 1 This is a cow 2 2 EN
3 Schwein.jpg 500 3 3 Das ist ein Schwein 1
4 Gans 600 4 4 This is a goose 2 v
|
^ v ^ |
| | | |
| | | |
+--------------------------------------------+ +-------+
Beispiel ....
SELECT s.LangNr, s.Kuerzel, bi.PicNr, bitxt.BildNr,bi.osname, bi.pxhoehe, bi.pxbreite, bitxt.alttag, bitxt.title
FROM Bilder AS bi LEFT 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 = 'Schwein.jpg'
... retourniert ...
Array
(
[LangNr] =>
[Kuerzel] =>
[PicNr] => 214
[BildNr] => 214
[osname] => Schwein.jpg
[pxhoehe] => 11
[pxbreite] => 205
[alttag] => Das ist ein Schwein <- hier gehört eigentlich nichts her
[title] => Das ist ein Schwein <- hier gehört eigtenlich nichts her
)
... also wird der deutsche Datensatz genommen, obwohl englisch abgefragt wird (s.Kuerzel='EN')!
Nach einigen Tests kann ich zusammenfassen:
Die Abfrage funktioniert nicht,
- wenn in Bildertexte nur ein Datensatz DE vorhanden und EN abgefragt wird (oder umgekehrt)
Die Abfrage funktioniert in allen anderen Fällen:
- wenn in Bildertexte gar kein Datensatz vorhanden ist.
- wenn eine Sprache abgefragt wird, zu der es in Bildertexte auch eine Entsprechung gibt.
Verstehe es nicht, am obigen Beispiel finde ich interessant, daß in [LangNr] und [Kuerzel] gar nix drinnen steht.
Vielen Dank für Deine Bemühungen und Beste Grüße
Viennamade