【问题标题】:SQL QUERY - Merge data from rows with same IDSQL QUERY - 合并具有相同 ID 的行中的数据
【发布时间】:2012-06-21 06:15:40
【问题描述】:

我在我的网站上使用 wordpress,并且我有大量数据要通过 SQL 导出。 问题是我为每个帖子(项目)收到了几行,其中包含类别列下的数据。我想要做的是合并所有类别,所以最终我将只有 1 行的每个帖子包含所有类别。

这是我目前的查询:

    SELECT post_title, b.object_id, b.term_taxonomy_id, c.term_id, d.name
FROM wp_posts a
JOIN wp_term_relationships b ON a.ID = b.object_id
JOIN wp_term_taxonomy c ON b.term_taxonomy_id = c.term_taxonomy_id
JOIN wp_terms d ON d.term_id = c.term_id

这是我的结果示例:

post_title     object_id  term_taxonomy_id  term_id name
Holcroft Covenant   2       5                 5         Action
Holcroft Covenant   2       6                 6         Drama
Holcroft Covenant   2       8                 8         Thriller

我想要的结果是: 霍尔克罗夫特盟约 2 5 5 动作、剧情、惊悚

有什么想法吗?

【问题讨论】:

  • 我看了一下那个帖子...问题是他提供了一个适合他所拥有的确切值的解决方案...没有更通用的解决方案可以满足我的需求?
  • 实际上,我已经设法使用 group_concat 函数来做到这一点......它似乎工作得很好!
  • 我以为你在使用 Ms-Sql;如果您使用的是 mysql,那就这样

标签: sql wordpress


【解决方案1】:

如果你使用的是 MySql,试试这个:

SELECT 
    post_title, b.object_id, b.term_taxonomy_id, c.term_id, GROUP_CONCAT(d.name)
FROM wp_posts a
    JOIN wp_term_relationships b ON a.ID = b.object_id
    JOIN wp_term_taxonomy c ON b.term_taxonomy_id = c.term_taxonomy_id
    JOIN wp_terms d ON d.term_id = c.term_id
GROUP BY post_title, b.object_id, b.term_taxonomy_id, c.term_id

【讨论】:

    猜你喜欢
    • 2013-05-24
    • 1970-01-01
    • 2021-11-14
    • 1970-01-01
    • 2014-10-08
    • 2016-11-03
    • 2021-11-02
    • 1970-01-01
    相关资源
    最近更新 更多