Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
简化SQL查询,该查询使用“行”到“json”`_Sql_Postgresql - Fatal编程技术网

简化SQL查询,该查询使用“行”到“json”`

简化SQL查询,该查询使用“行”到“json”`,sql,postgresql,Sql,Postgresql,我正在使用PostgreSQL 9.3中提供的函数以JSON的形式获取查询结果: SELECT row_to_json(_customer_wishes) FROM ( SELECT ... (SELECT row_to_json(_brand) FROM ( SELECT b.id, b.name, b.url ) AS _brand ) AS brand,

我正在使用PostgreSQL 9.3中提供的函数以JSON的形式获取查询结果:

SELECT row_to_json(_customer_wishes) FROM (
    SELECT
        ...
        (SELECT row_to_json(_brand)
            FROM (
                SELECT b.id, b.name, b.url
            ) AS _brand
        ) AS brand,
    JOIN brand AS b ON ...
    WHERE ...
) AS _customer_wishes;
但是,我不喜欢从SELECT b.*AS.\U brand AS brand中选择row_to_json_brand


我想要像选择row_to_jsonSELECT b.*这样的东西作为品牌,但我不确定这是否可行。

通常我在这种情况下使用类型,我们以面向对象的方式使用数据库。 举个例子:

CREATE TYPE type_brand AS
(
    id integer,
    name text,
    url text
);
以及您的子查询:

SELECT row_to_json(SELECT (b.id, b.name, b.url)::type_brand) AS brand.
但是,有了表结构和设计的结果,我想我可以推荐一个更优雅的查询,在这里您可以只使用一次row_to_json