繁体   English   中英

sql 返回按博客发布日期排序的类别

[英]sql return categories ordered by blog post date

我有一个包含文章的 Wordpress 网站。 一个帖子可以包含一个或多个类别(表 wp_terms)。 现在我想要一个查询,返回所有术语名称的列表,按博客文章日期排序。 我已经在 SELECT 查询中尝试了 SELECT,但这不起作用......我该怎么做并返回按文章日期排序的类别?

wp_posts (例如):

|ID------|post_title------------------|post_date-|
|1       |Test title                  |2014-05-05|
|2       |Test title 2                |2014-04-01|
|3       |Last test title             |2014-02-02|
|4       |Another blog item           |2014-01-06|

wp_terms

|term_id|name---------|
|1      |computers    |
|2      |home         |
|3      |work         |

wp_term_relationships

|object_id|term_taxonomy_id|term_order|
|1        |2               | 0        |
|1        |1               | 0        |
|2        |3               | 0        |

wp_term_taxonomy

|term_taxonomy_id | term_id |
|1                |1        |
|2                |2        |
|3                |3        |
|4                |4        |

这是我当前的查询,但这不起作用...

SELECT t.*, p.*  FROM wp_terms AS t 
JOIN wp_term_taxonomy AS tt ON tt.term_id = t.term_id
JOIN wp_term_relationships AS tr ON tr.term_taxonomy_id = tr.term_taxonomy_id 
LEFT JOIN ( SELECT `ID`, `post_title`, max(`post_date`) as `date` FROM wp_posts
GROUP BY `ID` ) as p on p.`ID`= tr.`object_id` GROUP BY t.`term_id` ORDER BY p.`date` desc

仍然不确定您要实现的目标。 但这是您的查询,它运行时没有错误

SELECT t.*, p.* 
FROM wp_terms AS t JOIN wp_terms_taxonomy AS tt 
    ON tt.term_id = t.term_id 
JOIN wp_terms_relationship AS tr 
    ON tr.term_taxonomy_id 
        = tr.term_taxonomy_id LEFT JOIN 
( SELECT ID, post_title, max(post_date) as date 
 FROM wp_posts 
 GROUP BY ID , post_title) as p on p.ID= tr.object_id 
GROUP BY t.term_id,t.name,p.id,p.post_title,p.date
ORDER BY p.date desc

小提琴

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM