用于编译Post元数据的SQL Query

时间:2011-07-22 04:07:53

标签: sql database wordpress

我正在开发wordpress,我需要为客户端生成及时的csv文件,这必须包含有关wp_posts的帖子的基本信息,如title,time&作者。除此之外,我使用自定义字段来存储post_count,作者姓名,author_email以及更多的元字段。

wp_postmeta的结构 id,meta_key,meta_value

wp_posts的结构 id,title,date

wp_posts& wp_postmeta有1:N关系。

如果我用语句

做一个简单的内连接
SELECT * FROM wp_posts INNER JOIN wp_postmeta where wp_postmeta.post_id = wp_posts.id

然后我为每个元值得到一行,但我想要的是每个元值成为一个列,每个帖子只有一行。

如何撰写此查询?

请假设这是一个标准的wordpress数据库。

2 个答案:

答案 0 :(得分:1)

如果您正在运行MySQL,请使用GROUP_CONCAT

SELECT wp_posts.*, GROUP_CONCAT(meta_value SEPARATOR ', ')
FROM wp_posts INNER JOIN wp_postmeta USING post_id
GROUP BY wp_posts.post_id;

答案 1 :(得分:0)

旧问题,但在我的搜索中弹出。我将GROUP_CONCAT用于键/值对,如下所示:

GROUP_CONCAT(pm.meta_key, '=', pm.meta_value ORDER BY pm.meta_key DESC SEPARATOR ',') as meta