次の方法でうまくいかないのはなぜですか?
SELECT name FROM (SELECT name FROM agentinformation)
SQLについての私の理解は間違っていると思います。これは、
SELECT name FROM agentinformation
内側のSELECTステートメントは、外側のSELECTステートメントがクエリする結果セットを作成しませんか?
次の方法でうまくいかないのはなぜですか?
SELECT name FROM (SELECT name FROM agentinformation)
SQLについての私の理解は間違っていると思います。これは、
SELECT name FROM agentinformation
内側のSELECTステートメントは、外側のSELECTステートメントがクエリする結果セットを作成しませんか?
回答:
サブクエリにエイリアスを設定する必要があります。
SELECT name FROM (SELECT name FROM agentinformation) a
またはより明確にする
SELECT a.name FROM (SELECT name FROM agentinformation) a
where
句は外部クエリにどこに行きますか?
select
エイリアスなしで最初のものを受け入れます。
答えジョー・ステファネリにより提供はすでに正しいです。
SELECT name FROM (SELECT name FROM agentinformation) as a
クエリにはサブクエリのエイリアスを作成することから取得するテーブルオブジェクトが必要なので、サブクエリのエイリアスを作成する必要があります。概念的には、サブクエリの結果は外部クエリに代入されます。外部クエリにはテーブルオブジェクトが必要なので、内部クエリのエイリアスを作成する必要があります。
サブクエリを含むステートメントは通常、次のいずれかの形式を取ります。
ネストされたサブクエリのその他の例。
IN / NOT IN –この演算子は、内部クエリが実行された後、内部クエリの出力を取得します。これは、0以上の値であり、外部クエリに送信されます。次に、外部クエリは、一致するすべての[IN演算子]行または一致しない[NOT IN演算子]行をフェッチします。
ANY – [> ANYまたはANY演算子は、内部クエリによって生成された値のリストを取得し、リストの最小値より大きいすべての値をフェッチします。の
例> ANY(100,200,300)、ANY演算子は100より大きいすべての値をフェッチします。
例> ALL(100,200,300)、ALL演算子は300より大きいすべての値をフェッチします。