Postgresql 如果道具具有相同的名称,是否存在json_build_object缩写?

Postgresql 如果道具具有相同的名称,是否存在json_build_object缩写?,postgresql,Postgresql,如果对象名称与列名相同,是否有办法删除“id”和“电子邮件”部分 SELECT pu.project_id, json_build_object('id', u.id, 'email', u.email) AS user FROM projects_users pu LEFT JOIN users u ON pu.user_id = u.id WHERE project_id=1 比如: SELECT pu.project_id, json_build_

如果对象名称与列名相同,是否有办法删除“id”和“电子邮件”部分

SELECT pu.project_id, json_build_object('id', u.id, 'email', u.email) AS user
      FROM projects_users pu 
      LEFT JOIN users u ON pu.user_id = u.id 
      WHERE project_id=1
比如:

SELECT pu.project_id, json_build_object (u.id, u.email) AS user
      FROM projects_users pu 
      LEFT JOIN users u ON pu.user_id = u.id 
      WHERE project_id=1

如果您可以在JSONB中获取所有
用户
列,则可以使用:

SELECT pu.project_id, to_jsonb(u) AS user
FROM projects_users pu 
  LEFT JOIN users u ON pu.user_id = u.id 
WHERE project_id=1
如果您想从中删除一个或两个密钥,您可以使用
to_jsonb(u)-“password\u hash”-“last\u login”

或者,使用仅获取所需列的派生表:

SELECT pu.project_id, to_jsonb(u) AS user
FROM projects_users pu 
  LEFT JOIN (
    select id, email
    from users
  ) u ON pu.user_id = u.id 
WHERE project_id = 1

如果您可以在JSONB中获取所有
用户
列,则可以使用:

SELECT pu.project_id, to_jsonb(u) AS user
FROM projects_users pu 
  LEFT JOIN users u ON pu.user_id = u.id 
WHERE project_id=1
如果您想从中删除一个或两个密钥,您可以使用
to_jsonb(u)-“password\u hash”-“last\u login”

或者,使用仅获取所需列的派生表:

SELECT pu.project_id, to_jsonb(u) AS user
FROM projects_users pu 
  LEFT JOIN (
    select id, email
    from users
  ) u ON pu.user_id = u.id 
WHERE project_id = 1

@一匹没有名字但如何选择田地的马?@一匹没有名字但如何选择田地的马?