gpt4 book ai didi

sql - 在Oracle ANSI连接中混合 "USING"和 "ON"

转载 作者:行者123 更新时间:2023-12-04 05:05:41 26 4
gpt4 key购买 nike

我这样写了一个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);

关于sql - 在Oracle ANSI连接中混合 "USING"和 "ON",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/456684/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com