Optimisation d'une sous-requête SQL
Fermé
Vlaad
-
27 déc. 2009 à 19:11
dam75 Messages postés 1041 Date d'inscription lundi 4 mai 2009 Statut Webmaster Dernière intervention 21 février 2023 - 28 déc. 2009 à 20:00
dam75 Messages postés 1041 Date d'inscription lundi 4 mai 2009 Statut Webmaster Dernière intervention 21 février 2023 - 28 déc. 2009 à 20:00
A voir également:
- Optimisation d'une sous-requête SQL
- Optimisation pc - Accueil - Utilitaires
- Optimisation découpe panneau gratuit - Télécharger - Outils professionnels
- Optimisation windows 10 - Guide
- Blob sql ✓ - Forum Webmastering
- Glary Utilities : l'outil référence pour entretenir un PC - Télécharger - Nettoyage
2 réponses
holow1
Messages postés
680
Date d'inscription
lundi 21 décembre 2009
Statut
Membre
Dernière intervention
7 décembre 2012
71
28 déc. 2009 à 00:44
28 déc. 2009 à 00:44
bonjour,
ici https://sqlpro.developpez.com/cours/optimiser/
ici https://sqlpro.developpez.com/cours/optimiser/
dam75
Messages postés
1041
Date d'inscription
lundi 4 mai 2009
Statut
Webmaster
Dernière intervention
21 février 2023
67
28 déc. 2009 à 20:00
28 déc. 2009 à 20:00
Bonjour,
il est difficile de te répondre précisément sans connaître la structure des tables, mais oui tu dois pouvoir optimiser en remplacant les sous-requêtes par des jointures. Ex sur le count :
Pour les autres champs, je ne comprends même pas ce qu'ils sont sensés renvoyer :)
(auth, reply, ... : le dernier inséré dans la base ???)
Bon courage
il est difficile de te répondre précisément sans connaître la structure des tables, mais oui tu dois pouvoir optimiser en remplacant les sous-requêtes par des jointures. Ex sur le count :
SELECT a.id,a.forum_name,a.forum_desc,a.forum_lock, COUNT(*) AS nbr_msg, (SELECT login FROM members WHERE id=auth LIMIT 1) AS login (SELECT auth FROM forums_msg WHERE cat=a.id ORDER BY id DESC LIMIT 1) AS auth, (SELECT reply FROM forums_msg WHERE cat=a.id ORDER BY id DESC LIMIT 1) AS reply, (SELECT date FROM forums_msg WHERE cat=a.id ORDER BY id DESC LIMIT 1) AS last_date FROM forums AS a LEFT JOIN forums_msg AS m ON (a.id = m.cat) WHERE a.forum_cat='1' ORDER BY a.forum_name ASC; GROUP BY a.id
Pour les autres champs, je ne comprends même pas ce qu'ils sont sensés renvoyer :)
(auth, reply, ... : le dernier inséré dans la base ???)
Bon courage