Rumah > pangkalan data > tutorial mysql > Mengapa Pertanyaan UNION Saya Menyebabkan Ralat 'Input Pertanyaan Mesti Mengandungi Sekurang-kurangnya Satu Jadual atau Pertanyaan'?

Mengapa Pertanyaan UNION Saya Menyebabkan Ralat 'Input Pertanyaan Mesti Mengandungi Sekurang-kurangnya Satu Jadual atau Pertanyaan'?

Patricia Arquette
Lepaskan: 2025-01-12 09:03:46
asal
318 orang telah melayarinya

Why Does My UNION Query Cause a

Ralat pertanyaan UNION dalam enjin pangkalan data Jet/ACE: jadual atau pertanyaan hilang

Soalan:

Anda mungkin menghadapi ralat "Input pertanyaan mesti mengandungi sekurang-kurangnya satu jadual atau pertanyaan" semasa melaksanakan pertanyaan UNION yang tidak mengandungi sumber jadual.

Sebagai contoh, pertanyaan berikut adalah sah:

<code class="language-sql">SELECT "Mike" AS FName</code>
Salin selepas log masuk

Walau bagaimanapun, cubaan untuk menyertai berbilang baris menggunakan pertanyaan berikut gagal:

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

Penyelesaian:

Ini bukan pepijat atau pengehadan enjin pangkalan data Jet/ACE. Untuk melaksanakan operasi UNION atau UNION ALL pada berbilang baris, anda mesti memasukkan klausa FROM, walaupun anda tidak merujuk sebarang medan dalam sumber data.

Contoh:

Anda boleh menggunakan jadual dengan hanya satu baris sebagai jadual maya, contohnya:

<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>
Salin selepas log masuk

Anda kemudian boleh menggunakan jadual ini dalam pertanyaan UNION:

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

Alternatif:

Sebagai alternatif, anda boleh menggunakan pernyataan SELECT dengan klausa TOP 1 atau WHERE untuk mengehadkan keputusan yang ditetapkan kepada satu baris:

<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>
Salin selepas log masuk

Atas ialah kandungan terperinci Mengapa Pertanyaan UNION Saya Menyebabkan Ralat 'Input Pertanyaan Mesti Mengandungi Sekurang-kurangnya Satu Jadual atau Pertanyaan'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan