Pertanyaan Microsoft Access UNION: Keperluan Jadual
Dalam pangkalan data Microsoft Access, manakala penyataan SELECT ringkas yang mengambil satu baris boleh meninggalkan klausa FROM
, operasi UNION
atau UNION ALL
memerlukan klausa FROM
, walaupun untuk pilihan baris tunggal.
Had Pertanyaan
Mencuba UNION
atau UNION ALL
tanpa sumber data dalam klausa FROM
mengakibatkan ralat: "Input pertanyaan mesti mengandungi sekurang-kurangnya satu jadual atau pertanyaan." Contohnya:
<code class="language-sql">SELECT "Mike" AS FName UNION ALL SELECT "John" AS FName</code>
Pertanyaan ini akan gagal.
Menyelesaikan Isu
Untuk menggunakan UNION
atau UNION ALL
dengan data berasaskan baris, klausa FROM
adalah wajib, tidak kira sama ada medan jadual sumber dirujuk. Penyelesaian melibatkan mencipta jadual dummy, satu baris:
<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>
Pendekatan lain melibatkan penggunaan TOP 1
atau klausa WHERE
untuk mengehadkan hasil kepada satu baris daripada jadual sedia ada.
Pertimbangan Penting: Kekangan CHECK
, yang diperkenalkan dalam Jet 4, hanya serasi dengan ADO. Menggunakan DAO mungkin menghasilkan ralat sintaks semasa melaksanakan penyelesaian ini.
Atas ialah kandungan terperinci Mengapa Pertanyaan UNION dalam Microsoft Access Memerlukan Jadual, Walaupun untuk Pilihan Satu Baris?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!