一行中的sql组结果

qjp7pelc  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(321)

我有一个网站的数据库,处理7种不同的语言,我想在一行返回所有的 post_content 一排。示例:fr\u content、en\u content、es\u content、int\u content。。。我当前的sql返回7行

我的sql是:

SELECT p.ID, t.trid, ptrans.*, pen.post_content
    FROM hex_posts p
    JOIN hex_icl_translations t 
        ON p.ID = t.element_id
    LEFT JOIN hex_icl_translations ptrans
        on ptrans.trid = t.trid
    LEFT JOIN hex_posts pen
        on pen.ID = ptrans.element_id
    WHERE  
        p.ID =  22790
    ORDER BY p.post_date DESC

这个 ID 22790是原来的岗位, element_id 这篇文章是翻译的吗。
你知道怎么把所有的行都归为一行吗?
谢谢

dgjrabp2

dgjrabp21#

使用组\u concat()

SELECT p.ID, t.trid, ptrans.*, group_concat(pen.post_content SEPARATOR ', ')
        FROM hex_posts p
        JOIN hex_icl_translations t 
            ON p.ID = t.element_id
        LEFT JOIN hex_icl_translations ptrans
            on ptrans.trid = t.trid
        LEFT JOIN hex_posts pen
            on pen.ID = ptrans.element_id
        WHERE  
            p.ID =  22790
    group by p.ID, t.trid
        ORDER BY p.post_date DESC

相关问题