将 SELECT 和 LEFT OUTER JOIN 与 Postgresql 函数一起使用

Posted

技术标签:

【中文标题】将 SELECT 和 LEFT OUTER JOIN 与 Postgresql 函数一起使用【英文标题】:Using SELECT and LEFT OUTER JOIN with Postgresql function 【发布时间】:2014-08-05 21:19:44 【问题描述】:

我在函数中运行 SELECT 并让它从表中返回列值时遇到问题。该选择使用 LEFT OUTER JOIN 来定位与“主”列表中包含的值不匹配的值。到目前为止,函数看起来像:

CREATE OR REPLACE FUNCTION replaceFunc ()
RETURNS TABLE (
txt   text
,cnt   bigint
,ratio bigint
)  AS $rep$

BEGIN
EXECUTE 'SELECT columA FROM Table1 LEFT OUTER JOIN Table2 ON Table1.A = Table2.B WHERE Table2.B IS NULL;
END

$rep$ LANGUAGE plpgsql

当我运行该函数时,它不返回我想要的列,只返回一个空的 replacefunc 记录。感谢您的任何帮助,您可以提供。

【问题讨论】:

什么是citynames.city 我更新了代码以更随意的方式显示示例。 【参考方案1】:

尝试这样编码:

CREATE OR REPLACE FUNCTION replaceFunc ()
RETURNS TABLE (
txt   text
,cnt   bigint
,ratio bigint
) AS $$
    SELECT columnA
    FROM Table1
    LEFT OUTER JOIN Table2 ON Table1.A = Table2.B
    WHERE Table2.B IS NULL $$
LANGUAGE plpgsql

【讨论】:

以上是关于将 SELECT 和 LEFT OUTER JOIN 与 Postgresql 函数一起使用的主要内容,如果未能解决你的问题,请参考以下文章

left join ,right join ,inner join,outer join,union all,union有啥区别?怎么用?

Oracle表与表之间的连接方式(内连接:inner join 外连接 全连接: full outer join左连接:left outer join 右连接:right outer join(代码

BigQuery Left Outer 出现 OR 条件错误

PHP CodeIgniter多个LEFT OUTER在查询中加入

对于SQL的Join,在学习起来可能是比较乱的。我们知道,SQL的Join语法有很多inner的,有outer的,有left的,有时候,对于Select出来的结果集是什么样子有点不是很清楚。Codin

LEFT OUTER JOIN 不能在没有连接两边的字段相等的条件下使用