Retourner le paragraphe le plus récent par document [non résolu] - SQL/NoSQL - Programmation
Marsh Posté le 07-09-2006 à 22:02:55
Code :
|
Marsh Posté le 07-09-2006 à 22:09:25
Salut betsamee et merci pour ta participation.
" Unknown column 'A.date' in 'on clause' "
Voili
Marsh Posté le 07-09-2006 à 22:14:17
Code :
|
Marsh Posté le 07-09-2006 à 22:26:51
Ayé j'ai trouvé :
Affichage des enregistrements 0 - 4 (5 total, traitement: 0.4732 sec.) |
SELECT T.idpara, T.iddoc, T.date |
Merci pour ta participation
[EDIT]
Finalement ça repart en cacahuète dès que j'ajoute un nouveau champ issu d'une autre table
Je veux à présent, en me basant sur la requête précédent qui marche, récupérer le titre du document auquel le paragraphe est rattaché :
SELECT T.idpara, T.iddoc, T.date, P.titre |
Là ça repart sur des requêtes qui durent plus de 25 secondes à s'exécuter
Marsh Posté le 08-09-2006 à 15:38:04
Je n'ai pas le temps de te faire la requête propre, mais tu pourrais essayer un truc du style :
Code :
|
Je n'ai pas vérifié que le résultat attendu était le bon mais je pense que oui et ça te fera très certainement gagner du temps car tu n'auras plus d'appel à ta premiere requete dans ta sous requete !
Marsh Posté le 08-09-2006 à 15:49:34
Salut darkfrost, merci beaucoup pour ta participation.
Je viens de trouver une solution alternative qui répond finalement mieux à mon besoin. Plutôt que de prendre les paragraphes les plus récents et de retrouver les documents associés, j'ai pris le problème à l'envers et ça marche bien comme ça. Je prend les documents et pour chacun d'eux, je récupère le paragraphe le plus récent et voili.
Big merci à vous deux en tout cas.
PS : d'autant plus que chez moi les sous-requêtes fonctionnent, mais là où la page va être publiée ça marche pas (MySQL too old).
Marsh Posté le 07-09-2006 à 21:45:06
Salut,
J'ai fait une requête qui retourne la liste des paragraphes les plus récemment modifiés pour chaque document se trouvant dans ma base.
TParagraphe : idpara | iddoc | date
on a un jeu d'essai de ce style :
1, 1, 01/01/2006
1, 2, 02/02/2006
2, 1, 03/03/2006
L'exécution de la requête doit retourner logiquement ceci :
2, 1, 03/03/2006 // 2ème paragraphe du document 1
1, 2, 02/02/2006 // 1er paragraphe du document 2
La requête ci-dessous fonctionne mais le problème c'est qu'elle met 26 secondes pour s'exécuter
SELECT t.idpara, t.iddoc, t.date
FROM TParagraphe AS t
WHERE t.date = (
SELECT max( date )
FROM TParagraphe AS t2
WHERE t.iddoc = t2.iddoc
GROUP BY t2.iddoc )
GROUP BY t.iddoc
ORDER BY t.date DESC
LIMIT 5
Une idée ? Une solution ? ^^
Message édité par Inekman le 07-09-2006 à 23:12:44