【问题标题】:Unable to join two oracle tables无法连接两个 oracle 表
【发布时间】:2019-10-08 12:29:13
【问题描述】:

我有 2 张桌子。 第一个包含列的表 SEC_SEAL_LOG:

DATA_ADD,
DATA_AREA,
SEAL_NUMBER,
DATA_SEALING,
DATA_UNPLUG,
SORRUPTED.
SEC_WRITING_OFF_SEALS 

第二个表格列:

DATA, SEAL.

我想把这两张表放在一起,但我不明白哪里出错了,我会很感激你的帮助。

select DATA_ADD,
       DATA_AREA,
       SEAL_NUMBER,
       DATA_SEALING,
       DATA_UNPLUG,
       СORRUPTED,
       Data
from SEC_SEAL_LOG,SEC_WRITING_OFF_SEALS
where  (data_area = (select data_area 
                     from SEC_USERS_LIST 
                     where login = LOWER(:APP_USER) 
                     and SEAL_NUMBER = SEAL 
                    )
            or 20 >= (select u.role 
                      from SEC_users_list u 
                      where u.login = lower(:APP_USER)
                    )
        ) 
and СORRUPTED = 'Так'  
and SEAL_NUMBER = SEAL
ORDER BY  data_add DESC

我遇到了这个错误

ORA-20999:无法解析 SQL 查询!

ORA-06550:第 7 行,第 4 列:ORA-00918:列定义不明确

【问题讨论】:

  • 错误是什么?? .
  • 如果您遇到错误,请始终告诉我们错误是什么,所有错误消息请不要对其进行摘要
  • 你真的应该使用 JOIN 而不是 from SEC_SEAL_LOG,SEC_WRITING_OFF_SEALS
  • " column ambiguously defined" 这就是为什么你应该总是在 SQL 语言中使用完全限定的表或使用别名......或者你写 SELECT table_name.columns_name FROM table_name ("fully " 也可以包含作为数据库名称的限定词,使其成为 SELECT database_name.table_name.columns_name FROM table_name) 或使用 SELECT alias_name.column_name FROM table_name AS alias_name(别名)
  • 类似的东西是的,但我也会遵循@RiggsFolly 的建议,使用JOIN 而不是旧的逗号JOIN .. Topicstarter 我假设你没有注意到你的SQL 是SEC_SEAL_LOG 之间的笛卡尔积和 SEC_WRITING_OFF_SEALS 在该结果被过滤之前?我很确定如果您共享数据和预期结果,查询可以(重新)编写得更好......请参阅Why should I provide a Minimal Reproducible Example for a very simple SQL query?

标签: sql oracle


【解决方案1】:

错误Column Ambiguously Defined出现在一个列名存在于多个表中,而您未能指定哪个表。

您在这一行中这样做:and SEAL_NUMBER = SEAL(您有两次)。

您要比较哪个表中的 SEAL 值?

将其写为SEC_SEAL_LOG.SEALSEC_WRITING_OFF_SEALS.SEAL 或您尝试比较此值的任何表名,它将消除Column Ambiguously Defined 错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-12-11
    • 1970-01-01
    • 2012-01-08
    • 2017-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多