Je crée des enregistrements de document dans une base de données et chaque document peut avoir plusieurs versions. Chaque nouvelle version est un nouvel enregistrement dans la base de données. Pour regrouper les versions de document ensemble, je leur attribue un identifiant unique partagé Ce que j'essaie de chercher à partir de la base de données est la dernière version du document, mais je souhaite également que le document original créé à la date de la date: p> Exemple d'enregistrement: P> groupid code>.
SELECT * FROM documents
WHERE group_id='xyz'
ORDER BY 'created_at' DESC
LIMIT 1
5 Réponses :
Vous pouvez utiliser des sous-requêtes:
SELECT * FROM documents WHERE id in ( select min(id) FROM documents WHERE group_id='xyz' union select max(id) FROM documents WHERE group_id='xyz' )
Ajout d'une sous-requête à la requête L'original Created_AT pourrait fonctionner: puisque la date créée_at pour le document original ne change pas, je pourrais suggérer de dés-normaliser ces données et d'ajouter un nouveau colonne original_created_at est rempli pour toutes les nouvelles lignes. p> p>
Sélectionnez min (créé_at) comme date_created, max (créé_at) comme date_updated, group_id à partir de documents où group_id = 'xyz' groupe par groupe_id code> p> p>
Si cela est pour un seul groupe, j'irais:
select lastd.*, (select min(d2.created_at) from documents d2 where d2.group_id = d.group_id ) as first_created_at from (select d.* from documents d where group_id = 'xyz' order by created_at desc limit 1 ) lastd;
Cette requête: donne toutes les lignes contenant le min et max créé_at code> pour chaque
group_id code>. de
Vous pouvez ajouter n'importe quelle condition dont vous avez besoin comme suit: p>
Votre
Documents CODE> et
Les versions CODE> doivent être dans des tables séparées, avec une clé étrangère dans la table code> Table de la table pointant sur l'ID de document.
@Zack Do Earlaborer pourquoi "devrait" être?
Pas un ordinateur en ce moment, je ne peux donc pas saisir une réponse complète. Mais vos données doivent être correctement normalisées.