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 :
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...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Partager