Bonjour
Le système est Mysql.
- Le contenu de la table 'a' doit être présente intégralement
- Le contenu de la table 'd' doit être présente intégralement
- La table 'b' contient des informations à afficher, si possible. NULL sinon.
- Les tables sont reliés comme suit: a <-> b <-> c <-> d
J'ai tenté un produit cartésien des tables 'a' et 'd 'pour ensuite faire une jointure externe avec 'b' et 'c'.
Le résultat ne me convient pas car il invente des données là où il devrait mettre NULL.
Un enregistrement de 'a' croisé avec un enregistrement de 'd' donne des résultats pour 'b.info', ce qui est impossible.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 SELECT DISTINCT d.d_nom, a.a_nom, b.b_info, b.b_info2 FROM a CROSS d LEFT JOIN b ON b.a_nom=a.a_nom LEFT JOIN c ON c.c_nom=b.c_nom AND c.d_nom=d.d_nom ;
Quelle est la bonne requête pour obtenir mon résultat ?
Partager