Heim > Datenbank > MySQL-Tutorial > Warum erfordern UNION-Abfragen in Microsoft Access eine Tabelle, selbst für Einzelzeilenauswahlen?

Warum erfordern UNION-Abfragen in Microsoft Access eine Tabelle, selbst für Einzelzeilenauswahlen?

Barbara Streisand
Freigeben: 2025-01-12 09:09:42
Original
355 Leute haben es durchsucht

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

Microsoft Access UNION-Abfragen: Die Tabellenanforderung

Während in Microsoft Access-Datenbanken bei einfachen SELECT-Anweisungen zum Abrufen einer einzelnen Zeile die FROM-Klausel weggelassen werden kann, erfordern UNION- oder UNION ALL-Vorgänge eine FROM-Klausel, selbst für Einzelzeilenauswahlen.

Die Abfragebeschränkung

Der Versuch eines UNION oder UNION ALL ohne eine Datenquelle in der FROM-Klausel führt zu einem Fehler: „Die Abfrageeingabe muss mindestens eine Tabelle oder Abfrage enthalten.“ Zum Beispiel:

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

Diese Abfrage schlägt fehl.

Behebung des Problems

Um UNION oder UNION ALL mit zeilenbasierten Daten zu verwenden, ist eine FROM-Klausel obligatorisch, unabhängig davon, ob auf die Felder der Quelltabelle verwiesen wird. Eine Lösung besteht darin, eine einzeilige Dummy-Tabelle zu erstellen:

<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>
Nach dem Login kopieren

Ein anderer Ansatz besteht darin, TOP 1 oder eine WHERE-Klausel zu verwenden, um die Ergebnisse auf eine einzelne Zeile aus einer vorhandenen Tabelle zu beschränken.

Wichtige Überlegung: Die in Jet 4 eingeführte CHECK-Einschränkung ist nur mit ADO kompatibel. Die Verwendung von DAO kann bei der Implementierung dieser Problemumgehung zu einem Syntaxfehler führen.

Das obige ist der detaillierte Inhalt vonWarum erfordern UNION-Abfragen in Microsoft Access eine Tabelle, selbst für Einzelzeilenauswahlen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage