phpbar.de logo

Mailinglisten-Archive

JOIN mit eingebauter Alternative

JOIN mit eingebauter Alternative

Dmitri Vinogradov dv at allyoucanthink.de
Die Jul 15 16:43:53 CEST 2003


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