Le problème est en ROUGE. Il n'en veux pas. Par contre si je remplace ce qui est en rouge par un nom de table probable ça fonctionne très bien mais seulement avec un seul type.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 SELECT (SELECT T.name FROM E.e_type T WHERE T.id = E.e_id) AS title, E.contents FROM quests_steps E WHERE quest_id = 8;
Etant donné que le type est variable il faudrait que je puisse déterminer le nom de la table a partir d'un champ parent. Comment faire ?
J'aurai très bien pu faire ça avec un CASE WHEN mais le problème c'est que si je rajoute un type je devrait ajouter un WHEN et surtout, cela fait une requete beaucoup trop longue.
En vert, les différents nom de table possible, ...pour le moment ! Liste qui peux etre modifié a tout moment
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 SELECT CASE WHEN E.e_type = 'pnjs' THEN (SELECT T.name FROM pnjs T WHERE T.id = E.e_id) WHEN E.e_type = 'objets' THEN (SELECT T.name FROM objets T WHERE T.id = E.e_id) WHEN E.e_type = 'potions' THEN (SELECT T.name FROM potions T WHERE T.id = E.e_id) END AS title, E.contents FROM quests_steps E WHERE quest_id = 8;
Partager