Rumah > pangkalan data > tutorial mysql > Bagaimana untuk menyelesaikan ralat mysql Subquery mengembalikan lebih daripada 1 baris

Bagaimana untuk menyelesaikan ralat mysql Subquery mengembalikan lebih daripada 1 baris

PHPz
Lepaskan: 2023-05-27 18:49:13
ke hadapan
10387 orang telah melayarinya

    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.

    Ralat dilaporkan seperti berikut

    Bagaimana untuk menyelesaikan ralat mysql Subquery mengembalikan lebih daripada 1 baris

    Penyelesaian

    Ambil pernyataan sql ini sebagai contoh

    select * from table1 where table1.colums=(select columns from table2);
    Salin selepas log masuk

    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);
    Salin selepas log masuk

    3) Tambahkan sebarang kata kunci sebelum subquery

    select * from table1 where table1.colums=any(select columns from table2);
    Salin selepas log masuk

    Kod ralat: 1242 Subquery mengembalikan lebih daripada 1 baris

    Perihalan ralat

    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

    Sebab ralat

    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
    Salin selepas log masuk

    Pertanyaan menunjukkan bahawa num ialah berbilang keping data dan hasil pertanyaan luar memerlukan num untuk menjadi satu keping data

    Penyelesaian

    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
    Salin selepas log masuk

    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!

    Label berkaitan:
    sumber:yisu.com
    Kenyataan Laman Web ini
    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
    Tutorial Popular
    Lagi>
    Muat turun terkini
    Lagi>
    kesan web
    Kod sumber laman web
    Bahan laman web
    Templat hujung hadapan