簡體   English   中英

Postgresql - 在查詢中將字段合並到 JSON object

[英]Postgresql - Merge field to JSON object in a query

大家好,我有以下查詢,其中包含一個子查詢:

SELECT g.id, g.name, data.permissions, gp.has_permission
FROM groups g
RIGHT JOIN groups_permissions gp ON gp.group_id = g.id
RIGHT JOIN (SELECT p.id, array_to_json(array_agg(to_json(p.*)))
FROM permissions p
GROUP BY p.id) AS data (id, permissions) ON (gp.permission_id = data.id)
WHERE g.id=1

此查詢返回以下結果:

[
  {
    "id": "7a588463-1780-459a-9646-8f19e9cb6ded",
    "name": "Administradores",
    "permissions": [
      {
        "id": "bf9d5ee3-d554-4faa-9cf4-9c60acb79801",
        "name": "Criar Grupos",
        "slug": "criar-grupos",
        "created_at": "2020-12-07T00:50:05.017783",
        "updated_at": "2020-12-07T00:50:05.017783"
      }
    ],
    "has_permission": true
  }
]

我想在權限數組中的 object 中有 has_permission 字段。

有人可以幫助將該字段與 object 合並嗎?

現在謝謝你。

您不只需將 has_permission 添加到 json 子記錄嗎?

SELECT g.id, g.name, data.permissions
FROM groups g
RIGHT JOIN groups_permissions gp ON gp.group_id = g.id
RIGHT JOIN (SELECT p.id, array_to_json(array_agg(to_json(p.*, gp.has_permission)))
FROM permissions p
GROUP BY p.id) AS data (id, permissions) ON (gp.permission_id = data.id)
WHERE g.id=1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM