Rolf B: mysql - Warum funktioniert Abfrage in ON aber nicht in WHERE

Beitrag lesen

Hallo mark,

ich habe das gerade minimalistisch nachzustellen versucht - bei mir tritt dieser Effekt nicht auf.

CREATE TEMPORARY TABLE IF NOT EXISTS lang (
      locale VARCHAR(6) DEFAULT NULL
);

INSERT INTO lang (locale) VALUES ('de_DE'),('en_US'),('it_IT'),('fr_FR');

CREATE TEMPORARY TABLE IF NOT EXISTS texte (
      locale VARCHAR(6) DEFAULT NULL,
      id     VARCHAR(6) DEFAULT NULL,
      textid VARCHAR(6) DEFAULT NULL
);
INSERT INTO texte (locale, id, textid) VALUES 
   ('de_DE', '0001', '0001'),   ('en_US', '0002', '0001'),   ('it_IT', '0003', '0001'),
   ('de_DE', '0011', '0002'),   ('en_US', '0012', '0002'),   ('it_IT', '0013', '0002');

select * 
from lang left join texte on lang.locale = texte.locale
where textid='0002' or textid is null

Die fr_FR Zeile ist im Ergebnis drin, und das ist so auch zu erwarten.

D.h. bei Dir kommt noch irgend ein anderer Effekt hinzu, den du uns nicht zeigst.

Rolf

--
sumpsi - posui - clusi