我有一个包含2个表的表结构:
结果表:1行,泛型为+行UUID。
-------------------------- | uuid | name | other | -------------------------- | result1 | foo | bar | -------------------------- | result2 | foo2 | bar2 | --------------------------
criteria_result :
----------------------------------- | result_uuid | crit_uuid | value | ----------------------------------- | result1 | crit1 | 7 | ----------------------------------- | result1 | crit2 | 8 | ----------------------------------- | result1 | crit3 | 9 | ----------------------------------- | result1 | crit7 | 4 | ----------------------------------- | result2 | crit1 | 2 | -----------------------------------
我需要的是每个结果表格中的一行,但该组中包含所有 criteria_result 表格,例如:
---------------------------------------------------- | uuid | name | result_crit | ---------------------------------------------------- | result1 | foo | [ | | crit1 | crit2 | crit3 | crit7 | | | 7 | 8 | 9 | 4 |] ---------------------------------------------------- | result2 | foo2 | [ | | crit1 | | | 2 | ] ----------------------------------------------------
甚至
----------------------------------------- | uuid | name | result_crit | ----------------------------------------- | result1 | foo | [ | name | value | | crit1 | 7 | | crit2 | 8 | | crit3 | 9 | | crit7 | 4 | ] ----------------------------------------- ----------------------------------------- | result2 | foo2 | [ | name | value | | crit1 | 2 | ] -----------------------------------------
当我导出它时,每行只能获得1个结果,但是在该子数组/对象中也包含该行/结果的所有条件。
SELECT
result.uuid,
result.name,
criteria_result.result_uuid
FROM
public.criteria_result,
public.result
WHERE
result.uuid = criteria_result.result_uuid;
我尝试了CUBE,GROUP BY,GROUPING SETS,但我似乎没有做对或找到答案:/。 谢谢 注意:我最近有一个Postgres 9.5.1。