Maison > base de données > tutoriel mysql > Pourquoi les requêtes UNION dans Microsoft Access nécessitent-elles une table, même pour les sélections sur une seule ligne ?

Pourquoi les requêtes UNION dans Microsoft Access nécessitent-elles une table, même pour les sélections sur une seule ligne ?

Barbara Streisand
Libérer: 2025-01-12 09:09:42
original
355 Les gens l'ont consulté

Why Do UNION Queries in Microsoft Access Require a Table, Even for Single-Row Selects?

Requêtes Microsoft Access UNION : l'exigence de table

Dans les bases de données Microsoft Access, alors que de simples instructions SELECT récupérant une seule ligne peuvent omettre la clause FROM, les opérations UNION ou UNION ALL nécessitent une clause FROM, même pour les sélections sur une seule ligne.

La limitation des requêtes

Tenter un UNION ou un UNION ALL sans source de données dans la clause FROM entraîne une erreur : "L'entrée de requête doit contenir au moins une table ou une requête." Par exemple :

<code class="language-sql">SELECT "Mike" AS FName
UNION ALL
SELECT "John" AS FName</code>
Copier après la connexion

Cette requête échouera.

Résoudre le problème

Pour utiliser UNION ou UNION ALL avec des données basées sur les lignes, une clause FROM est obligatoire, que les champs de la table source soient ou non référencés. Une solution consiste à créer une table factice à une seule ligne :

<code class="language-sql">CREATE TABLE Dual (id COUNTER PRIMARY KEY);
INSERT INTO Dual (id) VALUES (1);
ALTER TABLE Dual ADD CONSTRAINT there_can_be_only_one CHECK ((SELECT Count(*) FROM Dual) = 1);

SELECT "foo" AS my_text
FROM Dual
UNION ALL
SELECT "bar"
FROM Dual;</code>
Copier après la connexion

Une autre approche consiste à utiliser TOP 1 ou une clause WHERE pour limiter les résultats à une seule ligne d'une table existante.

Considération importante : La contrainte CHECK, introduite dans Jet 4, n'est compatible qu'avec ADO. L'utilisation de DAO peut produire une erreur de syntaxe lors de la mise en œuvre de cette solution de contournement.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal