Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.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
如何使用where子句中的主键将两个不同的sql查询合并为一个查询_Sql_Database_Postgresql - Fatal编程技术网

如何使用where子句中的主键将两个不同的sql查询合并为一个查询

如何使用where子句中的主键将两个不同的sql查询合并为一个查询,sql,database,postgresql,Sql,Database,Postgresql,我必须在Postgres中执行一个函数,该函数需要返回来自同一个表的两个不同查询的结果,该表的同一个表字段上有一个where子句,该字段是主键 具有相同索引号的索引(也称为inIndex,OUTIDEX)是相关的,其中一个是输入,另一个是输出 例如: SELECT '9' as inIndex, name as inFieldName from FIELDS where field_id = 1000000005 UNION SELECT

我必须在Postgres中执行一个函数,该函数需要返回来自同一个表的两个不同查询的结果,该表的同一个表字段上有一个where子句,该字段是主键

具有相同索引号的索引(也称为inIndex,OUTIDEX)是相关的,其中一个是输入,另一个是输出

例如:

SELECT 
       '9' as inIndex, 
       name as inFieldName 
    from FIELDS 
    where field_id = 1000000005

UNION

SELECT 
       '10' as inIndex, 
       name as inFieldName 
    from FIELDS 
    where field_id = 1000000007;

SELECT  
       '9' as outIndex, 
       name as outFieldName 
    from FIELDS 
    where field_id = 1000000004

UNION 

SELECT  
       '10' as outIndex, 
       name as outFieldName 
    from FIELDS 
    where field_id = 1000000006;
有没有办法将两个查询混合到一个查询中

如果不是,如何将两个查询结果返回到pl/pgsql函数中的一个resultset中


到目前为止,我已经提出了两个循环,将结果添加到具有3列(索引、填充、外场)的自定义类型中。有没有更好的方法来完成这个过程?

像这样的事情怎么样:

SELECT
    '9' AS FieldIndex,
    InFields.name AS InFieldName,
    OutFields.name AS OutFieldName
FROM
    FIELDS AS InFields,
    FIELDS AS OutFields
WHERE
    InFields.field_id = 1000000005
AND OutFields.field_id = 1000000004

UNION

SELECT
    '10' AS FieldIndex,
    InFields.name AS InFieldName,
    OutFields.name AS OutFieldName
FROM
    FIELDS AS InFields,
    FIELDS AS OutFields
WHERE
    InFields.field_id = 1000000007
AND OutFields.field_id = 1000000006

显然,您可能需要对其进行一些调整…

您能描述一下您想要获得的输出格式吗?谢谢@stormCloud!这正是我要找的问题,很简单。经过一些改变后工作得很好