J'ai 2 tables

Une Table "Pnj"

Avec comme champs :
"id","zone",....
... = le reste est inutile pour la question

Une Table "Pnj_nom"

Avec comme champs :

"id_pnj","lng","nom"
Un "Pnj" peut avoir un "nom" différent par langue

dans la table "Pnj" on a :
"1", "3"
dans la table "Pnj_nom" on peut avoir des données de ce type la :
"1", "fr", "Toto"
"1", "en", "Titi"
En fonction de la langue de l'utilisateur J'affiche le nom dans sa langue, Si le nom n'est pas renseigner j'affiche le nom "fr" par defaut.

J'ai découvert ici les joies de GROUP_CONCAT et des jointures pour m'eviter certaines boucles en php.

Donc j'ai fait cette requete :

SELECT d.id, GROUP_CONCAT(e.nom) as nom, d.zone FROM Pnj d INNER JOIN Pnj_lng e ON d.id = e.id_pnj WHERE d.zone='3' GROUP BY d.nom ORDER BY e.nom
Qui me permet d'avoir dans le résultat :

nom = Titi, Toto


Premiere question est-ce que ma requete est correcte ? (Est-ce que je complique les choses pour rien, vu que je debute dans l'utilisation de GROUP_CONCAT)

Ai-je une solution pour que la concaténation soit ordonné avec en premier la langue de l'utilisateur ?