Sql 左连接与另一个查询以获取帖子评论?
我正在尝试两个get帖子和两个最近的评论。我希望结果不会重复,这与left join发生的情况相同。我想要json格式的结果,如下所示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{
{
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“可扩展”和“高效”在您定义它们之前没有任何意义。学会做直截了当的设计。感谢这些指导。我是新来这里的,所以我会试着跟着这些。从我的问题来看,你能给我一些建议吗