Bonjour,
je suis en train de refondre mon portfolio sous wordpress, et pour faciliter les choses par rapport à mon nouveau fonctionnement, je cherche à obtenir toutes les informations dont j'ai besoin en une seule requête.
J'ai pour le moment une requête qui fonctionne :
Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 SELECT p.ID, p.post_name, p.post_excerpt, p.post_date, p.guid, t.term_id, t.slug, pm.meta_value FROM $wpdb->posts AS p, $wpdb->terms AS t, $wpdb->term_relationships AS tr, $wpdb->term_taxonomy AS tt, $wpdb->postmeta AS pm WHERE p.post_status = 'publish' AND tt.term_id = t.term_id AND tt.term_taxonomy_id = tr.term_taxonomy_id AND tt.taxonomy = 'category' AND p.ID = tr.object_id AND p.ID = pm.post_id AND pm.meta_value LIKE '%.jpg%' GROUP BY p.ID ORDER BY p.post_date DESC;
Celle-ci me permet d'obtenir tous mes posts, ainsi que leur catégorie et les meta informations liées (notamment l'image d'illustration).
Cependant une partie de mes posts sont aussi soumis a un système de notation.
Je peux faire la requête suivante pour obtenir cette information :
Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 SELECT p.ID, r.nb_vote, r.total FROM $wpdb->posts AS p, wp_ratings AS r WHERE p.ID = r.post_id
J'aimerais pouvoir ne faire cela qu'en une seule requête, celle du début. J'avais dans un premier rajouté une clause dans le WHERE : p.ID = r.post_id, mais celle ci exclut mes posts qui ne sont pas notés...
J'ai cherché un peu du coté des jointures externes, mais j'avoue que je manque de compréhension pour arriver à mixer le tout de manière fonctionnelle.
Merci pour votre aide!
Tout de bon
Partager