ホームページ >データベース >mysql チュートリアル >UNION クエリで「クエリ入力には少なくとも 1 つのテーブルまたはクエリが含まれている必要があります」エラーが発生するのはなぜですか?

UNION クエリで「クエリ入力には少なくとも 1 つのテーブルまたはクエリが含まれている必要があります」エラーが発生するのはなぜですか?

Patricia Arquette
Patricia Arquetteオリジナル
2025-01-12 09:03:46321ブラウズ

Why Does My UNION Query Cause a

Jet/ACE データベース エンジンの UNION クエリ エラー: テーブルまたはクエリがありません

質問:

テーブル ソースを含まない UNION クエリを実行すると、「クエリ入力には少なくとも 1 つのテーブルまたはクエリが含まれている必要があります」というエラーが発生する場合があります。

たとえば、次のクエリは有効です:

<code class="language-sql">SELECT "Mike" AS FName</code>

ただし、次のクエリを使用して複数の行を結合しようとすると失敗します:

<code class="language-sql">SELECT "Mike" AS FName
UNION ALL
SELECT "John" AS FName</code>

解決策:

これは、Jet/ACE データベース エンジンのバグや制限ではありません。複数の行に対して UNION または UNION ALL 操作を実行するには、データ ソース内のフィールドを参照していない場合でも、FROM 句を含める必要があります。

例:

たとえば、行が 1 つだけあるテーブルを仮想テーブルとして使用できます。

<code class="language-vba">Public Sub CreateDualTable()
    Dim strSql As String
    strSql = "CREATE TABLE Dual (id COUNTER CONSTRAINT pkey PRIMARY KEY);"
    CurrentProject.Connection.Execute strSql
End Sub</code>

このテーブルを UNION クエリで使用できます。

<code class="language-sql">SELECT "Mike" AS FName
FROM Dual
UNION ALL
SELECT "John" AS FName
FROM Dual;</code>

代替:

または、TOP 1 または WHERE 句を指定した SELECT ステートメントを使用して、結果セットを 1 行に制限することもできます。

<code class="language-sql">SELECT TOP 1 "Mike" AS FName
FROM (SELECT "Mike" AS FName UNION ALL SELECT "John" AS FName) AS SubQuery

SELECT "Mike" AS FName
FROM (SELECT "Mike" AS FName UNION ALL SELECT "John" AS FName) AS SubQuery
WHERE ID = 1</code>

以上がUNION クエリで「クエリ入力には少なくとも 1 つのテーブルまたはクエリが含まれている必要があります」エラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。