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