sql - 加入后的标识符无效
问题描述
谁能解释为什么我收到以下错误消息:
ORA-00904: "BPT"."OBA_REQ_FK": 标识符无效
sql 可以正常工作,直到我将它放入我的连接中。
left outer join (Select *
From (SELECT OBA_REQ_FK, Max(CRE_DATE) AS CRE_DATE
FROM fmis.open_burn_requests_pt
GROUP BY OBA_REQ_FK) ptl
join
(SELECT OBA_REQ_FK, USNG_COORDS,CRE_DATE
FROM fmis.open_burn_requests_pt) ttl
on ttl.CRE_DATE = ptl.CRE_DATE) bpt on bpt.oba_req_fk = oba.pk
解决方案
问题出在子查询上SELECT *
。
有两个列名ptl.oba_req_fk
和ttl.oba_req_fk
子查询,外部ON
不知道使用哪一个
您需要确定您需要哪一个。
LEFT OUTER JOIN
(
SELECT -- * ptl.oba_req_fk,ttl.oba_req_fk
FROM (
SELECT oba_req_fk,
max(cre_date) AS cre_date
FROM fmis.open_burn_requests_pt
GROUP BY oba_req_fk) ptl
JOIN
(
SELECT oba_req_fk,
usng_coords,
cre_date
FROM fmis.open_burn_requests_pt) ttl
ON ttl.cre_date = ptl.cre_date
) bpt ON bpt.oba_req_fk = oba.pk
笔记:
- 避免使用
select *
Pleaseselect
the column 你需要这样可以提高性能 - 如果要在表上选择相同的列名,可以使用别名。
编辑
我想您需要获取ptl.oba_req_fk
,因为您想获取最后日期数据。
LEFT OUTER JOIN
(
SELECT ptl.oba_req_fk,
ptl.cre_date,
ttl.usng_coords
FROM (
SELECT oba_req_fk,
max(cre_date) AS cre_date
FROM fmis.open_burn_requests_pt
GROUP BY oba_req_fk) ptl
JOIN
(
SELECT oba_req_fk,
usng_coords,
cre_date
FROM fmis.open_burn_requests_pt) ttl
ON ttl.cre_date = ptl.cre_date
) bpt ON bpt.oba_req_fk = oba.pk
推荐阅读
- ios - 通过 UITextFields 约束问题交换
- python - 如何重命名python蝗虫动作?
- ios - 各种与 Apple 相关的包管理器的相对市场份额是多少?
- python - 我想了解以下程序的递归逻辑以确定如何计算输出
- python - 根据边缘查找轮廓
- javascript - 在表格内插入地图结果
- javascript - 无法在 React-Native 应用程序上使用 ActivityIndicator 创建覆盖
- firebase-analytics - 您可以在未安装 Google Play 服务的情况下使用 Firebase Analytics 吗?
- jquery - Jquery 计数器无法正常工作,显示错误的日期
- java - 无法将三个日期时间解析为特定格式