SQL执行出错:
项目场景:编写SQL语句时,使用外连接或嵌套查询结果时,报错
ORA-00918: column ambiguously defined
Cause: java.sql.SQLException: ORA-00918
: 未明确定义列
原因分析:
提示:这里填写问题的分析:
1 查询的属性在两个表中都存在,但没有区分开
SELECT
id
FROM
hcrm h
LEFT JOIN hcrm_crr hc ON hc.id = h.id
WHERE
h.attribute = 'Y'
id
这个属性在两个表中都存在,查询的时候数据库分不清到底查的是哪个表中的属性,导致报错
2 where后的条件在两个表中都存在
SELECT
h.id
FROM
hcrm h
LEFT JOIN hcrm_crr hc ON hc.id = h.id
WHERE
attribute = 'Y'
attribute
这个属性在两个表中都存在,查询的时候数据库分不清到底查的是哪个表中的条件属性,导致报错
解决方案:
提示:这里填写该问题的具体解决方案:
连接查询或嵌套查询时,将查询的结果和条件都用别名标清楚
SELECT
h.id
FROM
hcrm h
LEFT JOIN hcrm_crr hc ON hc.id = h.id
WHERE
h.attribute = 'Y'