有人能解释一下如何将列的值从一个select传递到另一个select吗?在我的例子中,如何将值参数传递给名为“cad_products.id_product”的字段?
遵循代码。
SELECT
json_agg ( T ) AS retorno
FROM
(
SELECT
cad_products.*,
json_agg ( b ) AS properties
FROM
cad_products,
(
SELECT
cad_properties.id_property,
cad_properties.description
FROM
cad_products_properties
LEFT JOIN cad_properties ON cad_products_properties.id_property = cad_properties.id_property
WHERE
cad_products_properties.id_product = **"parameter"**
) b
WHERE
cad_products.id_agr = 37
GROUP BY
cad_products.id_product
) T发布于 2021-01-12 05:45:19
很难说你的参数是什么,它来自哪里,但我建议在连接中处理它。此外,使用CTE可以在一定程度上提高可读性,如下所示:
WITH data AS
(
SELECT prod.*
, json_object_agg(prop.id_property, prop.description) AS properties
FROM cad_products prod
JOIN cad_products_properties cpp ON (cpp.id_product = prod.id_product) -- Not sure what your parameter is
LEFT JOIN cad_properties prop ON (cpp.id_property = prop.id_property)
) SELECT JSON_AGG(data) AS retorno; https://stackoverflow.com/questions/65673476
复制相似问题