我有两个查询,但我希望结果在同一个返回表中。
第一个查询返回一个包含所有帖子及其评论的列表。注释存储在不同的表中。

SELECT E.id, E.time, E.title, E.body, E.type, C.comments
FROM elements E
LEFT JOIN(
    SELECT elementID, GROUP_CONCAT(body SEPARATOR '|-|') AS comments
    FROM comments
    GROUP BY elementID
) C on C.elementID = E.id

第二个查询返回一个所有帖子的列表,其中包含该帖子作为一个新列有多少喜欢/赞成票的计数。类似的存储在不同的表中。
SELECT E.id, E.googleID, E.title, L.likeCount
FROM elements E
LEFT JOIN (
    SELECT elementID, COUNT(id) AS likeCount
    FROM likes
    GROUP BY elementID
) L ON L.elementID = E.id;

在同一个查询中,如何将一个连接的注释列表作为一个列,将多个likes作为一个列。

最佳答案

好吧,为什么不能像对其他查询那样同时执行两个查询呢?

SELECT E.id, E.time, E.title, E.body, E.type, C.comments, E.googleID, L.likeCount
FROM elements E
LEFT JOIN(
    SELECT elementID, GROUP_CONCAT(body SEPARATOR '|-|') AS comments
    FROM comments
    GROUP BY elementID
) C on C.elementID = E.id
LEFT JOIN (
    SELECT elementID, COUNT(id) AS likeCount
    FROM likes
    GROUP BY elementID
) L ON L.elementID = E.id;

10-06 05:44