Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Membetulkan \'ERROR 1222 (21000): Penyataan SELECT yang digunakan mempunyai bilangan lajur yang berbeza\' dalam Penyata UNION?

Bagaimana untuk Membetulkan \'ERROR 1222 (21000): Penyataan SELECT yang digunakan mempunyai bilangan lajur yang berbeza\' dalam Penyata UNION?

Susan Sarandon
Susan Sarandonasal
2024-11-03 21:47:30405semak imbas

How to Fix

Ralat: Jurang Dalam Kiraan Lajur Antara Penyata PILIHAN BERSATU

Dalam pertanyaan yang diberikan, anda menghadapi ralat: "ERROR 1222 (21000) : Pernyataan SELECT yang digunakan mempunyai bilangan lajur yang berbeza." Ralat ini timbul apabila pernyataan SELECT dalam pernyataan UNION mengembalikan jumlah lajur yang tidak sama rata.

Dalam pertanyaan anda, pernyataan SELECT pertama:

SELECT * FROM friends
LEFT JOIN users AS u1 ON users.uid = friends.fid1
LEFT JOIN users AS u2 ON users.uid = friends.fid2
WHERE (friends.fid1 = 1) AND (friends.fid2 > 1)

mengembalikan tiga lajur: friends.fid1 , friends.fid2 dan lajur daripada jadual pengguna yang disertai (u1 dan u2). Walau bagaimanapun, pernyataan SELECT kedua:

SELECT fid2 FROM friends
WHERE (friends.fid2 = 1) AND (friends.fid1 < 1)

hanya mengembalikan satu lajur: friends.fid2.

Keperluan UNION untuk Padanan Lajur

Jenis Data Lajur Padan:
    Jenis data lajur pada setiap kedudukan dalam klausa SELECT mesti sepadan.
  • Penyelesaian
  • Untuk menyelesaikan ralat ini, anda mesti memastikan bahawa semua pernyataan SELECT dalam operasi UNION anda mengembalikan bilangan lajur yang sama dengan jenis data yang sepadan. Contohnya, anda boleh menulis semula pertanyaan anda sebagai:

Dalam pertanyaan yang disemak ini, kedua-dua pernyataan SELECT mengembalikan bilangan lajur (lima) yang sama dengan jenis data yang sepadan, menyelesaikan ralat.

Atas ialah kandungan terperinci Bagaimana untuk Membetulkan \'ERROR 1222 (21000): Penyataan SELECT yang digunakan mempunyai bilangan lajur yang berbeza\' dalam Penyata UNION?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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