1. ホーム
  2. マイスル

すべての派生テーブルが独自のエイリアスを持つ必要があります(SQL構文エラー)。

2022-03-15 12:47:02
<パス

今日、複数テーブルの結合クエリを実行しているときに、次のようなエラーが発生しました。

すべての派生テーブルは、それ自身のエイリアスを持たなければならない:すべての派生テーブルは、それ自身のエイリアスを持たなければならない

以下は、私が実行した間違ったSQL文です。

select *from port as p join (select *from node as n where n.nodeName="test5" and n.scenario_id = 20) on port.node_id=n.n_id;

括弧で囲まれたステートメントは、select *from node as n where n.nodeName="test5" and n.scenario_id = 20, which actually gets a derived table with this subsql statement: select *from node as n where n.nodeName="test5" and n. scenario_id = 20,であり、これは実際にこのsubsqlステートメントで派生テーブルを取得する。 scenario_id = 20は、テーブルと共同クエリのための先行ノードテーブルとして実行されます、エラーの理由は:各派生テーブルはそれ自身のエイリアスを持たなければならない、それから私は与える。 エラーの理由は、各派生テーブルはそれ自身のエイリアスを持たなければならない、だから私は派生テーブルにエイリアスを追加するだけです。

修正したsqlです。

select *from port as p join (select *from node as n where n.nodeName="test5" and n.scenario_id = 20) as n on p.node_id=n.n_id;

エラーが解決されました。