0
我真的新手跟我的SQL和IM试图创造一些意见的击打MySQL的叫喊,错误MySQL视图中删除的子查询中FROM条件
ERROR 1349(HY000):视图的SELECT语句包含在一个子查询 条款
如何删除FROM条件中的子查询并在视图中获得相同的结果?
SELECT actual,
curr,
CASE WHEN actual > anterior THEN 'raise'
WHEN actual < anterior THEN 'drop' ELSE 'nothing'
END as 'status'
FROM (
SELECT o.i_price as actual, o.i_currency as curr,
(
SELECT i.i_price
FROM Info i
WHERE i.i_article_id = 1
AND i.i_insert < o.i_insert
ORDER BY i.i_insert DESC LIMIT 1
) AS anterior
FROM Info o
WHERE o.i_article_id = 1
ORDER BY o.i_insert
DESC LIMIT 1) as q
性能明智,对于数据库性能来说,这对于from子句本身中的子查询来说更是一场灾难。好吧,至少它会起作用。更好的做法是重写查询,而不是在临时表上堆积临时表。 MySQL有理由禁止这样的开始。 – Kaii
@Kaii我同意这样一个事实,即性能会受到影响......但为了克服这个错误,您不得使用子查询动态..如果可以的话肯定会更好地重写查询..我也添加这个建议来回答。 – scaisEdge