Oracle多表JOIN报ORA-00903无效表名错误解决方案咨询
问题原因
你的JOIN关联语法顺序不符合Oracle SQL规范,错误地将ON关键字写在了要关联的schedule_assignment表前面,导致数据库解析时无法识别关联的表名,因此抛出ORA-00903: invalid table name错误。
另外你的SELECT子句中直接写schedule_id也会存在字段歧义问题,两张表都存在schedule_id字段,需要指定所属表别名。
修正后的查询代码
WITH sch AS ( SELECT s.schedule_id, sa.employee_id, s.location_id, s.start_date, s.end_date FROM schedule s JOIN schedule_assignment sa ON s.schedule_id = sa.schedule_id AND TRUNC(s.start_date) = sa.schedule_date ) SELECT * from sch;
执行结果
运行修正后的语句可以正常返回3条匹配的关联数据,包含你需要的employee_id字段。
内容的提问来源于stack exchange,提问作者Beefstu
相关产品推荐
相关产品推荐

