Memasukkan Nilai ke dalam Jadual daripada Subkueri Bukan Skalar
Dalam SQL Server, memasukkan nilai ke dalam jadual berdasarkan subkueri yang mengembalikan berbilang keputusan boleh mencabar. Pertimbangkan senario berikut:
Anda mempunyai dua jadual:
Anda mahu memasukkan baris ke dalam Jadual harga dengan nilai khusus untuk lajur kumpulan, id dan harga, di mana nilai id berada diperoleh daripada subkueri yang memilih ID yang sepadan daripada artikel jadual.
Pendekatan Salah:
Cuba menggunakan subkueri dengan lebih daripada satu hasil sebagai nilai untuk lajur dalam pernyataan INSERT boleh mengakibatkan ralat, kerana ditunjukkan oleh pernyataan SQL yang salah berikut:
INSERT INTO prices (group, id, price) VALUES (7, (select articleId from article WHERE name LIKE 'ABC%'), 1.50);
Betul Penyelesaian:
Untuk menyelesaikan isu ini, gunakan pernyataan SELECT untuk mendapatkan semula nilai yang dikehendaki dan masukkannya ke dalam jadual sasaran. Tetapkan nilai tetap untuk lajur kumpulan dan price terus dalam pernyataan SELECT:
insert into prices (group, id, price) select 7, articleId, 1.50 from article where name like 'ABC%';
Dalam pernyataan ini, subquery kembali ID artikel yang sepadan dengan kriteria nama yang ditentukan, dan nilai pemalar 7 dan 1.50 secara eksplisit diberikan kepada Lajur kumpulan dan harga.
Atas ialah kandungan terperinci Bagaimana untuk Memasukkan Berbilang Baris ke dalam Jadual Pelayan SQL daripada Subkueri Bukan Skalar?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!