Rumah >pangkalan data >tutorial mysql >Bagaimana untuk menyelesaikan ralat mysql Subquery mengembalikan lebih daripada 1 baris
ralat mysql: SQLSTATE[21000]: Pelanggaran kardinaliti: 1242 Subquery mengembalikan lebih daripada 1 baris
Ralat bermakna hasil subkueri adalah lebih daripada satu baris.
Ambil pernyataan sql ini sebagai contoh
select * from table1 where table1.colums=(select columns from table2);
1) Jika ia ditulis Ulang, keluarkan data pendua. Semasa menulis data, anda boleh menggunakan pertimbangan logik (PHP) atau kunci asing (MySQL) untuk mengelakkan penulisan data berulang.
(Apa yang saya temui dalam pembangunan sebenar ialah situasi penulisan data berulang. Saya mendapati dua keping data yang sama dalam pangkalan data, yang tidak memenuhi keperluan perniagaan asal)
2) Tambah hadkan 1 kepada pernyataan bersyarat subquery dan cari satu yang memenuhi syarat
select * from table1 where table1.colums=(select columns from table2 limit 1);
3) Tambahkan sebarang kata kunci sebelum subquery
select * from table1 where table1.colums=any(select columns from table2);
1 pertanyaan dilaksanakan, 0 kejayaan, 1 ralat, 0 amaran
Pertanyaan: SELECT t.id, DATE_FORMAT( t.statisTime, ' %Y-% m-%d %H:%i:%s' ) statusTime, (PILIH `id` DARI t_truck_info WHERE id = t.plateId...
Kod ralat: 1242Subquery mengembalikan lebih daripada 1 baris
Masa pelaksanaan: 0.009 saat Masa penghantaran: 0.002 saat Jumlah masa: 0.012 saat
Apabila menulis pernyataan SQL pertanyaan, terdapat medan A diperoleh daripada jadual lain
select t.id,(select num from t_user_info where id = stuNo) as amount from t_stu_info t left join t_user_info t0 on t0.id = t.stuNo
Pertanyaan menunjukkan bahawa num ialah berbilang keping data dan hasil pertanyaan luar memerlukan num untuk menjadi satu keping data
select t.id,(select sum(num) from t_user_info where id = stuNo) as amount from t_stu_info t left join t_user_info t0 on t0.id = t.stuNo
Atas ialah kandungan terperinci Bagaimana untuk menyelesaikan ralat mysql Subquery mengembalikan lebih daripada 1 baris. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!