代码之家  ›  专栏  ›  技术社区  ›  Rishav Sharan

是否可以合并两个简单的DB查询以获得包含哈希的单个回复

  •  0
  • Rishav Sharan  · 技术社区  · 7 年前

    在我类似博客的应用程序中,我有两个独立的查询;

    Select id, title, content from posts where id ='$a_post_id'
    

    Select tagname, tagscore from tags where postid ='$a_post_id'
    

    我想知道是否可以将这两个查询合并到一个查询中,以便获得预期的输出

    “$a_post_id”的postdetails=标识、标题、内容、标记(标记名散列、标记分数)

    类似于连接但行不对称的东西。或者加入返回的哈希。。。

    1 回复  |  直到 7 年前
        1
  •  1
  •   a_horse_with_no_name    7 年前

    如果JSON键/值对正常,您可以这样做:

    select p.id, p.title, p.content, 
           jsonb_object_agg(t.tagname, t.tagscore) as tags
    from posts p
      left join tags t on t.postid = p.id
    where p.id ='$a_post_id'
    group by p.id;
    

    上述假设是: posts.id 被定义为主键

    https://rextester.com/RDQX27041