Bonjour à tous,
Voici le sujet. J'ai simplifié à l'extrême en supprimant tout le superflu:
Il s'agit de manifestations culturelles en français (ref = m%fr ) ou en anglais (ref = m%en). Le nom de la manifestation (event_txt) est en français ou en anglais., avec la ref correspondante (ref = m%fr ou ref = m%en).table PROGRAM ref, event_txt
table CALENDAR ref, ref_2, event_date
Certaines sont bilingues et ont donc deux ref: (ref = m%fr) et (ref_2 = m%en) dans la table CALENDAR. Sinon, ref_2 reste vide.
Je souhaite obtenir la liste de toutes les manifestations en anglais ayant par conséquent m%en comme ref ou comme ref_2
Voici la requête:
pour obtenir le résultat:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 SELECT event_date, event_txt, program.ref, calendar.ref, ref_2 FROM calendar LEFT JOIN program ON program.ref = calendar.ref LEFT JOIN program AS program_2 ON program_2.ref = ref_2 WHERE calendar.ref LIKE \'m%en\' OR ref_2 LIKE \'m%en\'
Le résultat est correctement trié et affiché selon les conditions du WHERE, tous les event_txt sont en anglais, sauf ceux associés à ref_2, qui s'affichent en français, ce qui bien sûr n'est pas correct. Vous l'avez compris, ce sont les manifestations bilingues et le deuxième LEFTJOIN qui posent problème.event_date, event_txt
Dans une autre requête, j'ai
qui fonctionne parfaitement.
Code : Sélectionner tout - Visualiser dans une fenêtre à part LEFT JOIN program ON program.ref = ref_2
J'ai tourné le problème dans tous les sens... pour cette requête plutôt simple et classique et j'ai donc désormais besoin d'un regard extérieur.
Merci à l'avance de votre aide.
Partager