web-dev-qa-db-fra.com

Comment faire un flux d'activités mélangeant des posts et des commentaires?

Ce que je suis en train de créer est un flux d’activités avec la liste suivante:

  • Les messages,
  • les commentaires,
  • tous les deux mélangés entre eux et classés par date.

Mon idée est de faire deux requêtes, mais je ne sais pas comment les mélanger. Voici mes questions:

// Query the posts :
$queryPosts = "
    SELECT * FROM $wpdb->posts
    WHERE post_type = 'post'
    AND post_status = 'publish'
    ORDER BY post_date DESC
";

// Query the comments :
$queryComments = "
    SELECT * FROM $wpdb->comments
    ORDER BY comment_date DESC
";

Est-ce possible avec une sorte de SQL JOIN?

UPDATE:
J'ai essayé de suivre les suggestions de @scribu sur l'utilisation de SQL UNION et cela fonctionne bien:

SELECT ID AS entry_id, post_date AS entry_date, post_content AS entry_content FROM $wpdb->posts
WHERE post_type = 'post'
AND post_status = 'publish'
UNION
SELECT comment_ID AS entry_id, comment_date AS entry_date, comment_content AS entry_content FROM $wpdb->comments
ORDER BY entry_date DESC

Ce que j'essaie de faire maintenant, c'est d'accéder à des données qui se trouvent dans la table posts et non dans la table des commentaires. Une idée ?

Merci d'avance.

3
inwpitrust

Je crois que vous recherchez SQL UNION .

3
scribu