Bonjour,
je cherche à réaliser une requête se basant sur des infos de la même table.
Vous pouvez consulter les images jointes en bas de message.
En fait la table la plus importante est data (cf. image 1) et elle comprend une colonne idlang qui permet de préciser la langue des données d'un tuple et une colonne id_phrase qui permet d'identifier une phrase dans les différentes langues.
Ce que je cherche à obtenir, c'est une table qui se présenterait comme sur l'image 4. En gros je souhaite créer un tableau qui sur la même ligne comprend les informations pour les langues qui m'intéressent.
Pour ça, j'ai essayé plusieurs choses.
Déjà des jointures mais il existe différents types dont je ne connais pas précisément les différences mais je me suis lancé avec LEFT JOIN.
Pour le moment j'ai déjà voulu essayer de ne joindre que les données en français et en anglais.
Voilà ma requête mais apparemment il y aurait un problème de syntaxe. J'ai aussi essayer de mettre des parenthèses autour des SELECT.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 SELECT d1.id_phrase, d1.idicon, d1.titre AS tfr, d1.desc AS dfr FROM data AS d1 WHERE idlang=1 LEFT JOIN SELECT d2.id_phrase, d2.titre AS ten, d2.desc AS den FROM data AS d2 WHERE idlang=2 ON d1.id_phrase=d2.id_phraseAlors j'ai créé des vues (phrasefr, phraseen et phrasejp) mais ça ne marche pas mieux.
Code : Sélectionner tout - Visualiser dans une fenêtre à part #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'LEFT JOIN SELECT d2.id_phrase, d2.titre AS ten, d2.desc AS den FROM data AS d2 W' at line 2
Pourquoi ne puis-je pas utiliser les vues dans ce cas ?
Comment dois-je procéder pour obtenir le résultat voulu ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 phrasefr LEFT JOIN phraseen ON phrasefr.id_phrase=phraseen.id_phrasePourtant d'après la doc la syntaxe est la suivante (entre autres) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'phrasefr LEFT JOIN phraseen ON phrasefr.id_phrase=phraseen.id_phrase' at line 1
Merci d'avance.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 reference_table LEFT [OUTER] JOIN reference_table condition_jointure ... où reference_table est définie de la manière suivante : nom_de_table [[AS] alias] [USE INDEX (liste_de_clefs)] [IGNORE INDEX (liste_de_clefs)] et condition_jointure est définie comme suit : ON expr_conditionnelle | USING (column_list)
Partager