sql – 在Oracle ANSI join中混合使用“USING”和“ON”
发布时间:2020-12-12 08:55:24 所属栏目:MsSql教程 来源:网络整理
导读:我写了一个像这样的Oracle SQL表达式: SELECT...FROM mc_current_view aJOIN account_master am USING (account_no)JOIN account_master am_loan ON (am.account_no = am_loan.parent_account_no)JOIN ml_client_account mca USING (account_no) 当我尝试运
我写了一个像这样的Oracle SQL表达式:
SELECT ... FROM mc_current_view a JOIN account_master am USING (account_no) JOIN account_master am_loan ON (am.account_no = am_loan.parent_account_no) JOIN ml_client_account mca USING (account_no) 当我尝试运行它时,Oracle在“ON”自连接行中抛出一个错误:“ORA-25154:USING子句的列部分不能有限定符”. 如果我省略“am”限定符,它会说:“ORA-00918:列模糊定义”. 解决这个问题的最佳方法是什么? 解决方法错误信息实际上是(惊喜!)告诉你究竟是什么问题.对特定列使用USING子句后,不能在查询的任何其他部分中对该列名使用列限定符/表别名.解决此问题的唯一方法是不在查询中的任何位置使用USING子句,因为必须在第二个连接条件上使用限定符:SELECT ... FROM mc_current_view a JOIN account_master am ON (a.account_no = am.account_no) JOIN account_master am_loan ON (am.account_no = am_loan.parent_account_no) JOIN ml_client_account mca ON (a.account_no = mca.account_no); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |