Problème avec LEFT OUTER JOIN
Bonjour 2 jours de recherches sans arriver au résultat, donc besoin d'un coup de pouce.
Je vais essayer de vous faire comprendre mon problème.
J'ai 2 tables :
- une table "Avancée des travaux" contenant différentes étapes d'une construction avec comme champs principaux : ID de la tranche, ID du programme auquel la tranche est rattachée
- une table 'Appel de fond" avec un appel de fond correspondant à une tranche des travaux. Champ principaux : ID tranche, ID du lot, date appel de fond
J'ai besoin d'obtenir un résultat montrant l'ensemble des appel de fond pour un programme donné avec les appels de fond effectué mais aussi ceux pour lesquels ils n'ont pas été fait.
Un LEFT OUTER JOIN permet théoriquement d'obtenir ce que je veux, le problème est que j'ai 2 conditions dans le WHERE :
- l'ID du programme dans la table avancée de travaux
- ID du lot concernant l'appel de fond Je n'obtient que le lot pour lequel il y a eu un appel mais les autres (donc non existant dans la table appel de fond) n'apparaissent pas.
Voici ma requêtes :
Code:
1 2 3 4 5
| SELECT at.at_id, at.pg_id, at.num_tranche, at.libelle, f.f_id, f.appel, f.recut
FROM `avancement_trvx` at
LEFT OUTER JOIN fonds f ON at.at_id = f.at_id
WHERE at.pg_id=X AND f.lp_id=Y
ORDER BY at.num_tranche |
X représentant l'ID du programme et Y le lot en question. Si quelqu'un arrive à comprendre de quoi je parle, merci d'avance...