Bonjour,
j'ai 2 tables :
- "technique" composée des champs "id_technique" et "libelle_technique"
- "fiche" composée des champs "id_fiche", "date_travaux", "id_technique" et "siren"
j'essaie de récupérer toutes les lignes de la table "technique", y compris celles qui n'ont pas de correspondance dans la table "fiche", d'où l'utilisation de la jointure externe :
le résultat est en pièce jointe (résultats left outer join sans siren.xls)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 SELECT t.libelle_technique, fs.id_smdt, fs.siren, fs.date_travaux FROM techniques t LEFT OUTER JOIN fiche_smdt fs ON t.id_technique = fs.id_technique WHERE fs.date_travaux = '2010-01' ORDER BY t.libelle_technique
ça coince quand je veux mettre une condition sur le siren, comme ceci (voir le 2ème fichier en pièce jointe):
(je me suis inspirée de http://sqlpro.developpez.com/cours/sqlaz/jointures/)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 SELECT t.libelle_technique, fs.id_smdt, fs.siren, fs.date_travaux FROM techniques t LEFT OUTER JOIN fiche_smdt fs ON t.id_technique = fs.id_technique WHERE fs.date_travaux = '2010-01' AND (fs.siren = '523454567' OR fs.siren IS NULL) ORDER BY t.libelle_technique
je ne me retrouve plus qu'avec les lignes où siren=523454567, donc je n'ai plus tous les noms de technique, alors que c'est ce que j'aimerais : toutes les techniques, même si aucune fiche avec le siren 523454567 ne correspond.
Qui peut m'aider ?
Partager