J'ai les tables Suivis sur ma base de donnéesrequête de jointure par date et primaire
Il y a plusieurs statuts projet (attente, travail, fini, payant) et un projet doivent passer par tous le statut d'attendre à payé. Afin de garder une trace complète du projet, chaque statut est conservé, ainsi nous savons quand un projet a changé son statut.
Je voudrais créer un filtre de recherche avec l'état actuel (celui avec le plus récent « created_at »).
J'ai essayé quelques requêtes afin d'obtenir le résultat correct, mais je suis coincé avec celui-ci.
La requête sans travail que j'ai est
select p.* from projects p
left join projects_status_projects psp on psp.project_id = p.id
where p.id in (select project_id from projects_status_projects
where project_status_id = XX group by project_id order by created_at desc)
Ofc, cette requête ne fonctionne pas et me retourner chaque projet avec un record pour project_status_id XX sans tenir compte de l'ordre.
Tout indice serait très apprécié!
Merci,
Benjamin
Cela n'a pas besoin d'avoir une table de jointure séparée (projects_status_projects) puisque chaque statut de projet n'appartiendra qu'à un projet (si j'ai bien lu la question). La table project_statuses devrait simplement avoir une colonne project_id. Cela rendrait vos requêtes plus faciles à gérer. – Slicedpan
@Slicedpan, peut-être que ma question n'a pas été correctement expurgée, mais la table project_statuses contient des "status labels" tels que "paid, waiting et ainsi de suite" (cela nous permet d'ajouter un nouveau statut et d'éviter les constantes). Donc la table de jointure est requise – bmichotte