Donc, j'ai ces 2 tables. L'un contient, appelons-les, les bogues, et l'autre contient des solutions. Un bug peut avoir plus d'une solution (ou état, si vous le pouvez), et j'aimerais obtenir le dernier.Obtenir la dernière entrée sur la jointure
En ce moment, je fais comme ça:
Select b.*, ap.approveMistakeId
from bugs_table as b
LEFT JOIN (select approveId, approveCause, approveDate, approveInfo,
approveUsername, mistakeId as approveMistakeId
from approve_table
order by approveDate desc) AS ap
ON m.mistakeId = ap.approveMistakeId
GROUP BY b.bugId
Ce n'est pas une requête complète, il est juste de montrer la façon dont j'approcher. La vraie requête rejoint plus de 10 tables. Le problème avec ceci est que, avec cette sous-sélection, la requête tourne pendant environ 3.3s et renvoie ~ 2.4K enregistrements. Sans cette requête, il fonctionne sur 0.4s, ce qui est plus acceptable. J'ai créé et indexé sur approvalDate, mais cela n'a pas semblé résoudre le problème.
La solution peut-elle être une vue créée à partir de cette requête, puis jointe à cette requête? Ou y a-t-il un moyen de le faire d'une autre manière?
Merci!
Uou devrait comparer les performances du sous-select. Et l'ordre n'est pas nécessaire. – ajreal
Oui, le sous-select était la partie mauvaise. –