Sql 是否按子查询中的ID列表选择条目?

Sql 是否按子查询中的ID列表选择条目?,sql,postgresql,Sql,Postgresql,在PostgreSQL数据库中,我提出了这样的SQL请求: SQL: SELECT ARRAY_AGG (QUESTION_ID) AS QUESTIONS FROM factors_questions_relationship WHERE FACTOR_ID IN (SELECT ARRAY_AGG (FACTOR_ID) AS FACTORS FROM surveys_factors_relationship

PostgreSQL
数据库中,我提出了这样的SQL请求:

SQL

SELECT 
    ARRAY_AGG (QUESTION_ID) AS QUESTIONS 
FROM 
    factors_questions_relationship 
WHERE 
    FACTOR_ID IN (SELECT ARRAY_AGG (FACTOR_ID) AS FACTORS 
                  FROM surveys_factors_relationship 
                  WHERE SURVEY_ID = '9bef1274-f1ee-4879-a60e-16e94e88df38');
错误

SELECT 
    ARRAY_AGG (QUESTION_ID) AS QUESTIONS 
FROM 
    factors_questions_relationship 
WHERE 
    FACTOR_ID IN (SELECT ARRAY_AGG (FACTOR_ID) AS FACTORS 
                  FROM surveys_factors_relationship 
                  WHERE SURVEY_ID = '9bef1274-f1ee-4879-a60e-16e94e88df38');
此SQL请求引发错误:
SQL错误[42883]:错误:运算符不存在:整数=整数[]
没有与给定名称和参数类型匹配的运算符。您可能需要添加显式类型转换

第二个子查询返回ID列表:
{2,10,12,44,52}
。我想在主查询中使用该ID列表。如何正确制作?

您可以在下面尝试-

SELECT ARRAY_AGG (QUESTION_ID) AS QUESTIONS FROM factors_questions_relationship 
where FACTOR_ID IN 
(
   SELECT FACTOR_ID AS FACTORS FROM surveys_factors_relationship 
   WHERE SURVEY_ID = '9bef1274-f1ee-4879-a60e-16e94e88df38'
)

你好我现在测试了你的代码。不幸的是,它引发了错误:
SQL错误[42803]:错误:在WHERE
中不允许使用聚合函数。您还有其他想法吗?我不知道为什么,但您的代码返回空结果。事实上,如果我在(2,10,12,44,52)中的factors\u QUESTIONS\u relationship(factors\u QUESTIONS\u ID)中提出这样的sql请求
SELECT ARRAY\u AGG(QUESTION\u ID)作为factors\u QUESTIONS\u relationship(factors\u ID)的问题,我得到的结果像
{7,8,9,10,11,12,39,40,41,42,43,47,48}
,这是正确的。你觉得怎么样?@Nurzhanogerbek,我已经编辑了答案-你现在可以查看了