Rumah  >  Artikel  >  pangkalan data  >  Bagaimana untuk Memasukkan Berbilang Baris daripada Subkueri ke dalam Jadual MySQL Apabila Subkueri Mengembalikan Lebih Daripada Satu Baris?

Bagaimana untuk Memasukkan Berbilang Baris daripada Subkueri ke dalam Jadual MySQL Apabila Subkueri Mengembalikan Lebih Daripada Satu Baris?

Patricia Arquette
Patricia Arquetteasal
2024-11-02 15:08:29146semak imbas

How to Insert Multiple Rows from a Subquery into a MySQL Table When the Subquery Returns More Than One Row?

Memasukkan Berbilang Baris daripada Subkueri ke dalam Jadual MySQL

Untuk memasukkan berbilang baris ke dalam jadual MySQL daripada subkueri, adalah penting untuk memastikan bahawa subquery hanya mengembalikan satu baris. Dalam coretan kod yang disediakan, pertanyaan sisipan:

INSERT INTO Results (People, names)
VALUES
(
 (SELECT d.id FROM Names f JOIN People d ON d.id = f.id),
 ("Henry"),
);

cuba untuk memasukkan dua nilai ke dalam lajur Orang dan nama. Walau bagaimanapun, subkueri di dalam kurungan pertama mengembalikan berbilang baris untuk d.id. Ini membawa kepada ralat "Subquery mengembalikan lebih daripada 1 baris."

Penyelesaian dengan Rentetan Statik Gabungan

Untuk memasukkan rentetan statik "Henry" sambil mengekalkan keputusan daripada subquery, ubah suai pertanyaan seperti berikut:

INSERT INTO Results (People, names)
SELECT d.id, 'Henry'
FROM Names f
JOIN People d ON d.id = f.id

Dengan menggabungkan rentetan statik "Henry" dengan subquery menggunakan koma, pertanyaan secara eksplisit menetapkan nilai untuk lajur nama kepada "Henry" untuk setiap baris dikembalikan oleh subquery. Ini memastikan bahawa pertanyaan memasukkan hasil subkueri bersama-sama dengan nilai yang ditentukan ke dalam jadual tanpa menghadapi ralat.

Atas ialah kandungan terperinci Bagaimana untuk Memasukkan Berbilang Baris daripada Subkueri ke dalam Jadual MySQL Apabila Subkueri Mengembalikan Lebih Daripada Satu Baris?. 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