Bonjour,
Je suis assez embêté par le temps de chargement beaucoup trop de long de mes pages. En effet, via PHP je dois générer un tableau dynamique et afficher des informations pour chaque article dans le tableau.
Pour se faire j'ai créé une abomination que voici :
En fait certains articles n'ont pas certaines informations, du coup cela rend la requête beaucoup plus compliquée. La première partie récupère les articles classiques et les trie par date (en prenant la date minimum disponible pour l'article, car un article peut avoir plusieurs dates) et la deuxième partie récupère ceux à part, qui n'ont pas de date.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 (SELECT r.article_id, a.titre, a.texte, r.ss_titre, r.lieu_id, d.date1, d.date2 FROM ARTICLES a INNER JOIN RENSEIGNEMENTS r ON a.id = r.article_id INNER JOIN DATES d ON r.date_id = d.id WHERE a.edition IN ('NANCY', 'NANCY-METZ', 'NANCY-METZ-STRASB', 'NANCY-METZ-STR-DIJON', 'TTES EDITIONS') AND a.rubrique = 'EXPOS' AND d.date1 = ( SELECT MIN( d1.date1 ) FROM ARTICLES a1 INNER JOIN RENSEIGNEMENTS r1 ON a1.id = r1.article_id INNER JOIN DATES d1 ON r1.date_id = d1.id WHERE a1.titre = a.titre ) GROUP BY a.titre) UNION ALL (SELECT id, titre, texte, null, null, 9999, null FROM ARTICLES a WHERE id NOT IN (SELECT a.id FROM ARTICLES a, RENSEIGNEMENTS r WHERE a.id=r.article_id) AND a.edition IN ('NANCY', 'NANCY-METZ', 'NANCY-METZ-STRASB', 'NANCY-METZ-STR-DIJON', 'TTES EDITIONS') AND a.rubrique = 'EXPOS') ORDER BY date1
Du coup comme je n'ai pas trouvé comme faire les deux requêtes en même temps, j'ai utilisé un UNION ALL
Si quelqu'un a une idée pour rendre plus simple le bouzin je suis preneur.
Merci
Partager