Rumah > pangkalan data > tutorial mysql > Mengapa MySQL Membuang Ralat 1093 Apabila Mengemas kini Jadual Menggunakan Subkueri?

Mengapa MySQL Membuang Ralat 1093 Apabila Mengemas kini Jadual Menggunakan Subkueri?

Mary-Kate Olsen
Lepaskan: 2024-12-22 00:11:23
asal
517 orang telah melayarinya

Why Does MySQL Throw Error 1093 When Updating a Table Using a Subquery?

MySQL Ralat 1093: Kemas Kini Jadual Sasaran dalam Subkueri

Apabila cuba melaksanakan pertanyaan berikut dalam MySQL:

UPDATE giveaways SET winner = '1' WHERE ID = (SELECT MAX(ID) FROM giveaways)
Salin selepas log masuk

Anda mungkin mengalami ralat berikut:

#1093 - You can't specify target table 'giveaways' for update in FROM clause
Salin selepas log masuk

Ralat ini berlaku kerana MySQL tidak membenarkan jadual sasaran pernyataan UPDATE (pemberian hadiah) digunakan dalam subkueri dalam klausa WHERE.

Menyesuaikan Penyelesaian daripada Artikel Rujukan

Untuk menyelesaikan isu ini, sesuaikan penyelesaian yang disediakan dalam artikel yang anda rujuk dengan menggunakan subkueri bersarang. Berikut ialah pertanyaan yang dikemas kini:

UPDATE giveaways SET winner='1'
WHERE Id = (SELECT Id FROM (SELECT MAX(Id) AS id FROM giveaways) AS t)
Salin selepas log masuk

Pertanyaan ini secara berkesan memilih nilai Id maksimum daripada jadual hadiah sebagai subkueri (t) dan kemudian menggunakan nilai itu untuk mengemas kini lajur pemenang dalam pertanyaan luar.

Dengan menyarangkan subkueri, anda mengelak daripada menentukan jadual sasaran (pemberian) dalam klausa FROM subkueri, sekali gus menyelesaikan ralat.

Atas ialah kandungan terperinci Mengapa MySQL Membuang Ralat 1093 Apabila Mengemas kini Jadual Menggunakan Subkueri?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan