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