MariaDB
 sql >> Teknologi Basis Data >  >> RDS >> MariaDB

Perbaiki "ERROR 1222 (21000):Pernyataan SELECT yang digunakan memiliki jumlah kolom yang berbeda" saat menggunakan UNION di MariaDB

Saat menggunakan UNION operator di MariaDB, Anda mungkin mengalami kesalahan berikut:"ERROR 1222 (21000):Pernyataan SELECT yang digunakan memiliki jumlah kolom yang berbeda".

Kesalahan ini terjadi ketika jumlah kolom yang dikembalikan oleh setiap SELECT pernyataannya berbeda.

Cara untuk memperbaikinya adalah dengan memastikan bahwa keduanya SELECT pernyataan mengembalikan jumlah kolom yang sama.

Contoh Kesalahan

Berikut contoh kode yang menghasilkan kesalahan:

SELECT TeacherName FROM Teachers
UNION
SELECT StudentId, StudentName FROM Students;

Hasil:

ERROR 1222 (21000): The used SELECT statements have a different number of columns

Di sini, SELECT first pertama pernyataan mengembalikan satu kolom (TeacherName ), tetapi SELECT second kedua pernyataan mengembalikan dua kolom (StudentId dan StudentName ).

Solusi

Solusinya adalah memastikan keduanya SELECT pernyataan mengembalikan jumlah kolom yang sama

Jadi dengan menggunakan contoh di atas, kita dapat menghapus kolom tambahan dari SELECT . kedua kita pernyataan:

SELECT TeacherName FROM Teachers
UNION
SELECT StudentName FROM Students;

Atau kita dapat menambahkan kolom lain ke SELECT pertama pernyataan:

SELECT TeacherId, TeacherName FROM Teachers
UNION
SELECT StudentId, StudentName FROM Students;

Ingatlah bahwa Anda bisa mendapatkan hasil yang berbeda tergantung pada opsi mana yang Anda pilih. Ini karena UNION mengembalikan baris yang berbeda secara default. Saat kita menambahkan kolom lain, ada kemungkinan baris yang sebelumnya duplikat sekarang menjadi baris yang unik, tergantung pada nilai di kolom tambahan.

Kami juga dapat menggunakan UNION ALL , yang mengembalikan nilai duplikat:

SELECT TeacherId, TeacherName FROM Teachers
UNION ALL
SELECT StudentId, StudentName FROM Students;

Ini juga dapat mengembalikan hasil yang berbeda pada contoh lainnya.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Apa yang Layak bagi Pelanggan Kami:Memperkenalkan Dokumentasi MariaDB Enterprise

  2. Cara Menjalankan dan Mengelola Pencadangan MySQL untuk Oracle DBA

  3. Membandingkan Solusi Oracle RAC HA dengan Galera Cluster untuk MySQL atau MariaDB

  4. Cara Menginstal MariaDB 10 di RHEL 8

  5. 4 Fungsi yang Mengembalikan Bagian Detik dari Nilai Waktu di MariaDB