2张表(产品表 和产品宣传图表),根据产品找到产品的主宣传图。
SQL:
SELECT P .*, ( SELECT INNER_TAB.usepic FROM (
SELECT SAP.attpic_name usepic,ROWNUM RN_
FROM T_CLSH_ATTPIC SAP
WHERE SAP.prod_id = P .prod_id
AND SAP.is_use = '1'
AND SAP.is_del = '0'
ORDER BY
SAP.ATTPIC_ID DESC
) INNER_TAB
WHERE
INNER_TAB.RN_ = 1
) usepic
FROM
T_CLSH_PROD P
在本地环境 windows oracle 10G下能够正常运行。
放到 linux oracle11G 执行报错.
错误:[Err] ORA-00904: "P"."PROD_ID": invalid identifier。
百度了下有人说是子查询带上主表的别名层数太深导致,还是说oracle11g不支持,
不知道这个问题该如何解决,要做配置还是只能通过更改sql(项目涉及这样的写法还有很多处)
请教各位!
SQL:
SELECT P .*, ( SELECT INNER_TAB.usepic FROM (
SELECT SAP.attpic_name usepic,ROWNUM RN_
FROM T_CLSH_ATTPIC SAP
WHERE SAP.prod_id = P .prod_id
AND SAP.is_use = '1'
AND SAP.is_del = '0'
ORDER BY
SAP.ATTPIC_ID DESC
) INNER_TAB
WHERE
INNER_TAB.RN_ = 1
) usepic
FROM
T_CLSH_PROD P
在本地环境 windows oracle 10G下能够正常运行。
放到 linux oracle11G 执行报错.
错误:[Err] ORA-00904: "P"."PROD_ID": invalid identifier。
百度了下有人说是子查询带上主表的别名层数太深导致,还是说oracle11g不支持,
不知道这个问题该如何解决,要做配置还是只能通过更改sql(项目涉及这样的写法还有很多处)
请教各位!
SELECT P .*, (SELECT max(SAP.attpic_name) usepic
FROM T_CLSH_ATTPIC SAP
WHERE SAP.prod_id = P .prod_id
AND SAP.is_use = '1'
AND SAP.is_del = '0') usepic
FROM
T_CLSH_PROD P
(select *
from (SELECT INNER_TAB.created
FROM (SELECT tt.created, ROWNUM RN_ FROM lhb.test1 tt) INNER_TAB
WHERE INNER_TAB.RN_ = 1)
where created > sysdate - 5) usepic
FROM lhb.test P