Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/70.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
Sql Oracle查询不返回空值_Sql_Oracle - Fatal编程技术网

Sql Oracle查询不返回空值

Sql Oracle查询不返回空值,sql,oracle,Sql,Oracle,我希望下面的查询在使用左连接时返回空行,其中WEBSITE_URL表中没有匹配的行。 因此,我想看到的是URLTYPE表中的所有url类型以及WEBSITE_url表中的任何匹配记录 SELECT WU.NC_WEBSITE_ID_FK, WU.TC_URL, UT.TC_URLTYPE_NAME FROM WEBSITE_URL WU, URLTYPE UT WHERE WU.NC_URL_TYPE_ID_FK(+) = UT.NC_UR

我希望下面的查询在使用左连接时返回空行,其中WEBSITE_URL表中没有匹配的行。 因此,我想看到的是URLTYPE表中的所有url类型以及WEBSITE_url表中的任何匹配记录

SELECT
    WU.NC_WEBSITE_ID_FK,
    WU.TC_URL,
    UT.TC_URLTYPE_NAME
  FROM
    WEBSITE_URL WU,
    URLTYPE UT
  WHERE
    WU.NC_URL_TYPE_ID_FK(+) = UT.NC_URLTYPE_ID
  AND
    NC_WEBSITE_ID_FK = '1622'
这是输出:

1622    http://www.test.com                 PRODUCTION (PUBLIC)

1622    http://preprod.test.com             PREPRODUCTION

1622    http://review.test.com              REVIEW
试试这个:

SELECT
    WU.NC_WEBSITE_ID_FK,
    WU.TC_URL,
    UT.TC_URLTYPE_NAME
  FROM
    URLTYPE UT
  LEFT JOIN 
    WEBSITE_URL WU ON WU.NC_URL_TYPE_ID_FK = UT.NC_URLTYPE_ID
               AND WU.NC_WEBSITE_ID_FK = '1622'

在本例中,使用标准联接类型outer或left,而不仅仅是旧的sql语法

SELECT WU.NC_WEBSITE_ID_FK, WU.TC_URL, UT.TC_URLTYPE_NAME
FROM URLTYPE UT
FULL OUTER JOIN WEBSITE_URL WU ON UT.NC_URLTYPE_ID = WU.NC_URL_TYPE_ID_FK(+)
WHERE NC_WEBSITE_ID_FK = '1622'

首先,学习使用显式连接语法。很少有人真正理解旧的Oracle语法了

其次,在所有列上使用表别名

如果NC_WEBSITE_ID_FK来自WEBSITE_URL,则需要将条件移动到ON子句:


另外,如果NC_WEBSITE_ID_FK是一个数字,则不要将常量值放在单引号中。混用数据类型对人和优化器都有误导性。

select*from WEBSITE\u URL其中NC\u-ID\u-FK='1622'和NC\u-URL\u-TYPE\u-ID\u-FK不在select NC\u-URLTYPE\u-ID from-URLTYPE请添加一些上下文,而不仅仅是吐出一些代码。这接近我想要的输出,它唯一没有做的事情就是在空行中输出NC_网站_ID_FK,我不确定这是否可能。@jeeperscropers。如果没有匹配项,该列的值如何?
SELECT WU.NC_WEBSITE_ID_FK, WU.TC_URL, UT.TC_URLTYPE_NAME
FROM URLTYPE LEFT JOIN
     WEBSITE_URL WU
     ON WU.NC_URL_TYPE_ID_FK = UT.NC_URLTYPE_ID AND
        NC_WEBSITE_ID_FK = '1622';