Sql 如何连接几个不相关的表

Sql 如何连接几个不相关的表,sql,function,postgresql-9.3,Sql,Function,Postgresql 9.3,我有五个查询,每个查询都将返回单列多行输出。我想写一个包含所有这些查询的函数。 有人能帮忙吗 查询1: Select Col1 as X from Table1; Select Col3 as Y from Table2; 查询2: Select Col1 as X from Table1; Select Col3 as Y from Table2; 我想从一个函数中得到一个包含列的表 X,Y 如何将这些查询合并到单个函数下?如果两个表之间存在关系,请尝试使用。 这里可能有一个简单的内部

我有五个查询,每个查询都将返回单列多行输出。我想写一个包含所有这些查询的函数。
有人能帮忙吗

查询1:

Select Col1 as X from Table1;
Select Col3 as Y from Table2;
查询2:

Select Col1 as X from Table1;
Select Col3 as Y from Table2;
我想从一个函数中得到一个包含列的表
X,Y


如何将这些查询合并到单个函数下?

如果两个表之间存在关系,请尝试使用。 这里可能有一个简单的
内部联接

select Col1 as X from Table1
join 
on Table1.Col1_name = Table2.col3_name

使用联合运算符:

SELECT
    column_1
FROM
    tbl_name_1
UNION ALL
SELECT
    column_1
FROM
    tbl_name_2;
在每个查询中添加一个
ROW\u NUMBER()
,并按行号连接它们。 根据每个查询返回的行数,您可以通过
内部
左侧
完整
连接

下面的示例假设两个查询返回相同数量的行

WITH
CTE1
AS
(
    SELECT Col1 as X, ROW_NUMBER() OVER(ORDER BY Col1) AS rn
    FROM Table1
)
,CTE2
AS
(
    SELECT Col3 as Y, ROW_NUMBER() OVER(ORDER BY Col3) AS rn 
    FROM Table2
)
SELECT
    CTE1.X, CTE2.Y
FROM
    CTE1
    INNER JOIN CTE2 ON CTE1.rn = CTE2.rn

您还应该提供您迄今为止尝试过的内容。表1和表2之间有什么关系吗?我编辑了问题的标题,以反映我所理解的问题的要点。如果我误解了这个问题,请进一步编辑。欢迎使用SQL,RTFM。什么是“一个包含所有这些查询的函数”?是否要将这些查询的结果放入一个长长的结果列表中?或者要将每个表的一个字段放入一列中,或者@StefanSteinegger,如果我正确理解了这个问题,OP说他希望得到一个包含两列的表
X,Y
。可能
UNION ALL
会更好。创建或替换函数ytd(MMYY字符变化,mmyyy1字符变化)返回表(名称字符变化,比率bigint,比率bigint)作为$BODY$BEGIN RETURN查询,从t1选择col1作为名称,从t2选择col2作为比率,从t3选择col3作为比率,从t3结束$BODY$LANGUAGE plpgsql VOLATILE COST 100行1000;将函数ydt2(MMYY字符变化,MMYY1字符变化)所有者更改为postgres;将在每个sql中传递相同的参数