MySQLのビューがfrom
のサブクエリを許可しないという事実を見逃しています 句。 select
で許可されています およびwhere
およびhaving
ただし、条項。
ドキュメント 非常に明確です:
あなたの場合、おそらくfrom
を書き直すことができます select
の相関サブクエリとしての句 句。複数のビューレイヤーを使用して、やりたいことを実行することもできます。
編集:
SQLのSELECTステートメントには、次の句があります。SELECT
、FROM
、WHERE
、GROUP BY
、HAVING
、およびORDER BY
(規格による)。さらに、MySQLはLIMIT
のようなものを追加します 、およびINTO OUTFILE
。これは、MySQLがSELECT
を記述する方法で確認できます。 ドキュメント
の条項 。これは、ほとんどすべてのデータベースのドキュメントでも確認できます。
join
などの操作 FROM
の一部です 句(同様にWITH ROLLUP
GROUP BY
の一部です およびDESC
ORDER BY
の一部です )。これらは難解な構文規則のように見えるかもしれませんが、上記のような制限がある場合に重要になります。
おそらく、混乱の理由の1つは、次のようなインデントスタイルです。
select . . .
from t1
inner join t2
on . . .
結合ステートメントがselect
の下に並んでいる場所 。これは誤解を招く恐れがあります。私はこれを次のように書きます:
select
from t1 join
t2
on . . .
select
のみ 句はselect.
の下に並んでいます