sql - StartDate 无效标识符
问题描述
我有两个连接使用的 SELECT 语句,但UNION
出现错误
ORA-00904: "PUSD2"."STARTDATE": invalid identifier
因为我创建了第一个 SELECT 语句并运行,我得到了结果,第二个也是,所以我单独运行,它工作得很好。但是当我使用 UNION 时,我得到错误 pusd2.StartDate 无效标识符。
SELECT * FROM project_users_schedule_dates pusd1
WHERE pusd1.UserID = 196 AND
pusd1.StartDate >= '2020-04-27' AND pusd1.EndDate <= '2020-06-06'
UNION
SELECT * FROM project_users_schedule_dates pusd2
WHERE pusd2.UserID = 196 AND
pusd2.StartDate <= '2020-04-27' AND pusd2. EndDate >= '2020-06-06'
ORDER BY pusd2.StartDate
这里有什么问题?我做错了什么?
表结构project_users_schedule_dates
解决方案
该错误可能源于在您的ORDER BY
子句的第二个联合中使用别名。但是,我可能会建议以这种方式编写您的查询:
SELECT DISTINCT *
FROM project_users_schedule_dates
WHERE
UserID = 196 AND
(StartDate >= '2020-04-27' AND EndDate <= '2020-06-06' OR
StartDate <= '2020-04-27' AND EndDate >= '2020-06-06');
这种方法将联合双方的标准集中在一个WHERE
子句中。然后它使用 , 而不是联合过滤重复项DISTINCT
。请注意,通常SELECT *
不希望在联合查询中执行此操作,因为它无法查看包含哪些列。
推荐阅读
- html - 我网站上的两张图片与其他图片的高度不同
- python - Pyinstaller 可执行文件无法导入 torchvision
- c++ - 迭代时无法读取配置文件
- html - 如何在右下角放置一个静态按钮?
- scala - 你可以模拟一个值而不是一个方法吗?
- jenkins - Jenkins X 错误:找不到秘密“jenkins”
- html - 当背景颜色为黑色时,白色 svg 图标不可见
- kubernetes - 无法使用 kubeadm (Vagrant) 设置多节点 kubernetes 集群
- dataframe - Julia DataFrames 等效于 pandas pct_change()
- python - numpy 数组掩码的区别