Bonjour,
j'ai 2 tables pour stocker des libellés dans plusieurs langues :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 table LIBELLE: id primary key name char(32) table TRADUCTION: id primary key libelle_id foreign key references(libelle.id) on delete cascade lang char(8) result char(32)
Par défaut tous les libelles sont crées dans la table LIBELLE.
Le libelle par défaut existe toujours.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 insert into LIBELLE values (NULL, 'a'); insert into LIBELLE values (NULL, 'beautifull'); insert into LIBELLE values (NULL, 'girl');
Mais ils peuvent avoir des traductions dans différentes langues dans la table TRADUCTION.
Ma question :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 insert into TRADUCTION values (NULL, 1, 'fra', 'une'); insert into TRADUCTION values (NULL, 2, 'fra', 'jolie'); insert into TRADUCTION values (NULL, 3, 'esp', 'chica');
comment récupérer les libéllés dans une langue choisie, et s'il n'y a pas de traduction renvoyer le libellé de base ?
les requêtes du style :
ne donnent pas les bons résultats.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 SELECT * FROM LIBELLE L LEFT JOIN TRADUCTION T ON L.ID=T.LIBELLE_ID WHERE T.LANG='fra' OR T.LANG IS NULL;
Merci par avance.
Partager