在 Oracle 中,在以下查询中添加 where 子句时,出现错误
列定义不明确
查询:
SELECT
t1.*, t2.*
FROM
NM_APPLICATION t1
LEFT JOIN
NM_QUOTA t2 ON t2.QUOTA_ID = t1.QUOTA_ID
WHERE
ACTIVE_FLAG = 'Y'
ORDER BY
MERIT_POSITION DESC
请帮助我
这里很可能的问题在于表NM_APPLICATION
和NM_QUOTA
都有一个名为ACTIVE_FLAG
的列。 解决方法是确定要使用的表的列,然后为该表提供别名:
SELECT t1.*, t2.*
FROM NM_APPLICATION t1
LEFT JOIN NM_QUOTA t2
ON t2.QUOTA_ID = t1.QUOTA_ID
WHERE t1.ACTIVE_FLAG = 'Y' -- or t2.ACTIVE_FLAG
ORDER BY MERIT_POSITION DESC
顺便说一下,如果这个答案是正确的,那么它可能表明同一架构中的两个表具有可能存储相同或相似数据的列的设计问题。 因此,您可能需要重新考虑您的表格设计。
您需要前缀列ACTIVE_FLAG
或/和按t1
或t2
MERIT_POSITION
别名(如果两个表中都存在(