Smi*_*tor 1 oracle plsql oracle11g
所以我有这个:
SELECT p.plantnaam,o.levcode,o.offerteprijs
FROM plant p, offerte o
JOIN (SELECT plantcode , MIN(offerteprijs) AS offprijs
FROM offerte
GROUP BY plantcode) s
ON s.plantcode = p.plantcode
AND s.offprijs = o.offerteprijs
ORDER BY p.plantnaam,l.levcode
Run Code Online (Sandbox Code Playgroud)
显然在第6行,p.plantcode突然神奇地成为无效的标识符.为什么是这样?为什么在那之前,完全相同的表中的所有其他人都完美无缺?
问题是你正在混合JOIN.您有隐式和显式连接.带有ON子句的显式JOIN语法比使用逗号的隐式连接具有更高的优先级.因此,ON子句中将无法使用plant和offerte表的别名.尝试使用相同的JOIN类型:
SELECT p.plantnaam, o.levcode, o.offerteprijs
FROM
(
SELECT plantcode , MIN(offerteprijs) AS offprijs
FROM offerte
GROUP BY plantcode
) s
INNER JOIN plant p
ON s.plantcode = p.plantcode
INNER JOIN offerte o
ON s.offprijs = o.offerteprijs
ORDER BY p.plantnaam, l.levcode
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1049 次 |
| 最近记录: |