Sql 左连接与另一个查询以获取帖子评论?

Sql 左连接与另一个查询以获取帖子评论?,sql,postgresql,performance,left-join,Sql,Postgresql,Performance,Left Join,我正在尝试两个get帖子和两个最近的评论。我希望结果不会重复,这与left join发生的情况相同。我想要json格式的结果,如下所示 { postid title body comments: [] } 是做一个左连接然后以某种方式折叠行更好,还是得到帖子然后再做另一个查询来得到评论更好。任何简单的代码示例都将非常有用 编辑 我有两张桌子 POST{ postID, uid, title, body, Date } Comments{

我正在尝试两个get帖子和两个最近的评论。我希望结果不会重复,这与left join发生的情况相同。我想要json格式的结果,如下所示

{
postid 
title 
body 
comments: []
}
是做一个左连接然后以某种方式折叠行更好,还是得到帖子然后再做另一个查询来得到评论更好。任何简单的代码示例都将非常有用

编辑

我有两张桌子

POST{
    postID, 
    uid,
    title,
    body,
    Date
}

Comments{
    commentID,
    postID
    uid,
    text,
    Date
}
这是我用于帖子的查询

SELECT * from posts WHERE posts.id = ?

您可以将其放入Postgres数组,如下所示:

select p.postid, p.title, p.body,
       array_agg(c.text) as comments
from posts p left join
     comments c
     using (postid)
group by p.postid;
作为一个具有非常相似语法的json/jsonb数组:

select p.postid, p.title, p.body,
       jsonb_agg(c.text) as comments
from posts p left join
     comments c
     using (postid)
group by p.postid;

你能显示你的数据和想要的输出吗?很抱歉,我添加了更多细节。预期输出在顶部。我希望它是json格式的,并将注释作为数组。我也在寻找一种可扩展且高效的方法,谢谢在代码问题中给出一个——剪切粘贴&可运行的代码;示例输入(作为初始化代码)以及所需和实际输出(包括逐字错误消息);标签和版本;清晰的说明和解释。对于包含最少代码的错误,您可以给出“显示为OK”的代码,并通过“显示为not OK”的代码进行扩展。(调试基础。)用于包含DBMS和DDL的SQL,其中包括约束、索引和表格初始化。PS是时候学习已出版的关于信息建模、关系模型和数据库设计与查询的学术教科书了。请通过编辑澄清,而不是评论。请在每篇文章中提出一个具体的非重复问题。请不要在评论中提出新问题,发布新问题。展示你能做的部分,并解释你被卡住的第一个地方。PS“可扩展”和“高效”在您定义它们之前没有任何意义。学会做直截了当的设计。感谢这些指导。我是新来这里的,所以我会试着跟着这些。从我的问题来看,你能给我一些建议吗