Mailinglisten-Archive |
Hallo, Tomas um so eine Alternative zu ermöglichen, muss Du das tabellen design (t1) etwas verändern: t1: sheetid sheetname default_sheettext im feld `default_sheettext` steht dann die Alternative in "default"-sprache (X) Die SQL-Query würde dann so aussehen: SELECT t1.sheetid, t1.sheetname, IF (t2.sheettext IS NOT NULL AND t2.sheettext != '', t2.sheettext, t1.default_sheettext ) as sheettext, t2.lang FROM t1 LEFT JOIN t2 ON ( t1.sheetid = t2.sheetid AND t2.lang = "Y" ) WHERE (t2.sheetid IS NULL OR t2.sheetid IS NOT NULL) Regards DV Thomas Tschernich schrieb: > Hallo Liste, > > Ich programmiere derzeit in PHP ein Script, bei dem ich ne Art > automatische Sprachenwahl einbauen will. Dazu hab ich 2 Tabellen > verfasst, einmal Tabelle t1, die nur die einzelnen Sheets definiert, und > die Tabelle t2, die dann die einzelnen Strings in mehreren Sprachen > enthält. Ich will erreichen, dass zu jedem Sheet der String vorzugsweise > in der Sprache X gefunden wird, gibt es ihn aber (noch) nicht in dieser > Sprache, soll er in der Standardsprache Y genommen werden. So sieht der > JOIN bis jetzt aus: > > SELECT t1.sheetid, t1.sheetname, t2.sheettext, t2.lang FROM t1 LEFT JOIN > t2 USING (sheetid) WHERE t2.lang = "X" OR t2.lang = "Y" > > Wie zu erwarten, liefert mir dieser Query aber 2 Entries, wenn der > String in beiden Sprachen in der DB steht. Ich will aber nur einen. Es > fehlt sowas wie ein XOR in MySQL (zumindest hab ichs sonst nicht > gefunden. Hab auch schon ein wenig mit HAVING und GROUP BY rumprobiert, > aber nix funktionierendes zu Stande bekommen. > > MfG, > Thomas Tschernich > > > -- > Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter > -->> http://www.4t2.com/mysql > -- Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter -->> http://www.4t2.com/mysql
php::bar PHP Wiki - Listenarchive