【发布时间】:2023-03-05 00:32:02
【问题描述】:
我正在使用子查询进行连接操作。当我对参数进行硬编码时,一切正常。但是这些参数必须来自外部 sql,我认为这被称为相关查询。我想使用表别名传递它们,但这会导致invalid identifier。
示例发明用于提问:
SELECT
PR.PROVINCE_NAME
,CO.COUNTRY_NAME
FROM
PROVINCE PR
JOIN (
SELECT COUNTRY_ID, COUNTRY_NAME
FROM COUNTRY
WHERE COUNTRY_ID=PR.COUNTRY_ID
) CO ON CO.COUNTRY_ID=PR.COUNTRY_ID
WHERE
PR.PROVINCE_ID IN (1,2)
这是输入的,所以我希望我没有在这里介绍任何语法问题。这个问题专门针对COUNTRY_ID=PR.COUNTRY_ID 跟在WHERE 子句之后。此类子查询中的别名是否合法?
【问题讨论】:
-
好吧,只要我用
WHERE COUNTRY_ID=123替换WHERE COUNTRY_ID=PR.COUNTRY_ID,一切正常。是否与通过 Oracle SQL Developer 版本 3.2.09 运行此查询有关?
标签: oracle correlated-subquery