如何使用where子句中的主键将两个不同的sql查询合并为一个查询
我必须在Postgres中执行一个函数,该函数需要返回来自同一个表的两个不同查询的结果,该表的同一个表字段上有一个where子句,该字段是主键 具有相同索引号的索引(也称为inIndex,OUTIDEX)是相关的,其中一个是输入,另一个是输出 例如:如何使用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
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!这正是我要找的问题,很简单。经过一些改变后工作得很好