gpt4 book ai didi

sql - Oracle子查询与Join - 如何引用子查询列?

转载 作者:行者123 更新时间:2023-12-02 21:46:02 30 4
gpt4 key购买 nike

我有两个表,Project 和 Project_Property,其中 Project 到 Project_Property 是一对多。我尝试使用子查询按项目获取三个属性并加入项目(示例中的“Repo”)。警告:我主要是一名 SQL Server 人员,因此我尝试将我所知道的在 SQL 中有效的内容转换到 Oracle 中。

我写的是:

select s1.Repo, s1.Solution, p1.Project, a1.Assembly
from
(
select p.name as "Repo", pp.value as "Solution"
from project p join project_property pp on p.id=pp.project_id
where pp.name='mssolutionname'
) s1 join
(
select p.name as "Repo", pp.value as "Project"
from project p join project_property pp on p.id=pp.project_id
where pp.name='msprojectname'
) p1 on p1.Repo=s1.Repo join
(
select p.name as "Repo", pp.value as "Assembly"
from project p join project_property pp on p.id=pp.project_id
where pp.name='msassemblyname'
) a1 on s1.Repo=a1.Repo;

但是当我运行它时,我得到:

ORA-00904: "S1"."REPO": invalid identifier

Oracle 中此类查询是否有不同的格式?如何在外部主查询中引用子查询中选择的值,特别是在连接子查询方面。或者我只是错过了一个打字错误。又不是第一次了。

TIA。

最佳答案

如果使用双引号对列进行别名,则列名将区分大小写。由于您将 p.name 编码为“Repo”,因此列必须称为 si."Repo"。如果省略双引号 (p.name as repo),那么您可以以不区分大小写的方式引用它 (si.repo, si .Reposi.rEPo)

关于sql - Oracle子查询与Join - 如何引用子查询列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19493877/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com