un fonctionnement inattendu de LEFT JOIN
Bonjour
Voilà une requête LEFT JOIN qui ne fonctionne pas comme je l'attend
Code:
SELECT DISTINCT dd.* , s.nom FROM dossierdet as dd LEFT JOIN societe as s on fk_soc = s.rowid WHERE fk_dossier =6
Est-ce que je me trompe?
La table société est la table de référence des tiers.
Dans la table dossierdet , chaque élément a un tiers (dans fk_soc) , référencé dans la table société (s.rowid) .
Je voudrais que cette requête affiche tous les éléments de dossierdet et les noms des tiers quand une valeur est dans fk_soc
Or cette requête ne me présente pas les éléments de dossierdet dont fk_soc est à 0 ou à Null.
Code:
1 2 3 4 5
|
J'ai bien une solution
SELECT DISTINCT dd.* , s.nom FROM dossierdet as dd , societe as s WHERE fk_dossier =6 and on fk_soc = s.rowid
union
SELECT DISTINCT dd.* , '' FROM dossierdet as dd WHERE fk_dossier =6 and (fk_soc = 0 or isnull(fk_soc)) |
Mais est-ce la seule façon?
Claude