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

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

Patricia Arquette
リリース: 2025-01-12 09:03:46
オリジナル
357 人が閲覧しました

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート