SQLite
 sql >> Teknologi Basis Data >  >> RDS >> SQLite

Perbaiki Kesalahan:"PILIH ke kiri dan kanan UNION tidak memiliki jumlah kolom hasil yang sama" di SQLite

Jika Anda mendapatkan “Kesalahan:dalam persiapan, SELECT di kiri dan kanan UNION tidak memiliki jumlah kolom hasil yang sama…” saat mencoba menggunakan UNION operator di SQLite, itu karena salah satu dari SELECT pernyataan mengembalikan lebih banyak kolom daripada yang lain.

Saat Anda menggunakan UNION operator, keduanya SELECT pernyataan harus mengembalikan jumlah kolom yang sama.

Untuk memperbaiki masalah ini, pastikan SELECT pernyataan mengembalikan jumlah kolom yang sama.

Contoh Kesalahan

Berikut ini contoh kode SQL yang menghasilkan kesalahan:

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

Hasil:

Kesalahan:dalam persiapan, SELECT di kiri dan kanan UNION tidak memiliki jumlah kolom hasil yang sama (1)

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

Solusi

Cara untuk memperbaiki masalah ini 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; 

Hasil:

TeacherName------------Ben Bill Cathy Ein Faye Jet Spike Warren 

Atau kita dapat menambahkan kolom lain ke SELECT pertama pernyataan:

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

Hasil:

TeacherId TeacherName--------- -----------1 Faye 1 Warren 2 Ben 2 Jet 3 Cathy 3 Spike 4 Cathy 4 Ein 5 Bill 5 Warren 6 Bill 

Ingatlah bahwa Anda bisa mendapatkan hasil yang berbeda tergantung pada opsi 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; 

Hasil:

TeacherId TeacherName--------- -----------1 Warren 2 Ben 3 Cathy 4 Cathy 5 Bill 6 Bill 1 Faye 2 Jet 3 Spike 4 Ein 5 Warren 6 Bill  

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara memasukkan sejumlah besar data dalam database sqlite di Android

  2. mengapa saya gagal membuat tabel ini di Android SQLite?

  3. Ketidakcocokan tipe data (kode 20) saat memasukkan

  4. Apakah ada metode yang membantu menyelesaikan masalah umum SQLite?

  5. Cara memperbarui data yang ada dengan SQLite