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