J'ai une première table reprenant des contrats proposés identifiés par un id_contrat:
id_contrat|nom|auteur|etat|....blabla
J'ai une seconde table avec les offres pour ces contrats, j'ai donc plusieurs propositions pour un même contrat!
id_contrat|auteur_prop|montant|date_expiration|etat|...
En gros, je voudrais lister les contrats avec pour chacun d'eux la meilleur offre valable...
Pour l'instant je fais:
Ca marche parfaitement...mais je ne parviens pas à classer les contrats en fonction des meilleurs...SELECT * from x_bd_contrat WHERE x_bd_contrat.etat='activé'
...
puis je boucle sur tous les id_contrat et je fais
SELECT MIN(montant) as min FROM x_offre WHERE id_contrat='".$data['id_contrat']."' AND date_expiration>NOW() AND etat='activé'
Donc,j 'aiemarais réaliser la requête en une seule fois, j'essaie
Mais la clause sur la date d'expiration empêche la requête de s'effetuer corrcetement...SELECT *, MIN(x_offre.montant) as min
from x_bd_contrat
LEFT JOIN x_offre ON x_offre.id_contrat=x_bd_contrat.id_contrat
WHERE x_bd_contrat.etat='activé' and x_offre.date_expiration>NOW()
and x_offre.etat='activé'
GROUP by x_bd_contrat.id_contrat
Avez-vous une idée comment traiter ce problème? Soit par ce biais ou par tout autre moyen?
Merci