Rumah > pangkalan data > tutorial mysql > Mengapa MySQL Melemparkan Ralat 'Jadual Ditentukan Dua Kali' Semasa Mengemas kini Jadual Menggunakan Subquery?

Mengapa MySQL Melemparkan Ralat 'Jadual Ditentukan Dua Kali' Semasa Mengemas kini Jadual Menggunakan Subquery?

Susan Sarandon
Lepaskan: 2024-11-15 02:40:02
asal
517 orang telah melayarinya

Why Does MySQL Throw

MySQL Ralat: Jadual Ditentukan Dua Kali dalam KEMASKINI dan Sumber

Apabila cuba mengemas kini jadual pengurus menggunakan pertanyaan SQL yang disediakan, MySQL menghadapi ralat: "Jadual 'm1' ditentukan dua kali, kedua-duanya sebagai sasaran untuk 'KEMASKINI' dan sebagai sumber berasingan untuk data." Ralat ini berlaku kerana pengurus jadual dirujuk dua kali dalam subkueri.

Isu ini boleh diselesaikan dengan mengubah suai subkueri untuk memilih daripada jadual terbitan. Daripada menggunakan alias m2 secara langsung, pertanyaan harus mencipta jadual sementara menggunakan pernyataan SELECT, dan kemudian pilih daripada jadual sementara itu. Pertanyaan yang diubah suai di bawah mencapai ini:

UPDATE manager
SET status = 'Y'
WHERE branch_id IN
(
  SELECT branch_id
  FROM (SELECT * FROM manager) AS m2
  WHERE (branch_id, year) IN
  (
    SELECT branch_id, year
    FROM branch_master
    WHERE type = 'finance'
  )
);
Salin selepas log masuk

Dengan menggunakan jadual terbitan, MySQL boleh membezakan dengan betul antara jadual pengurus yang digunakan dalam kenyataan KEMASKINI dan jadual pengurus yang dirujuk dalam subkueri. Ini menghapuskan kekeliruan yang membawa kepada mesej ralat.

Atas ialah kandungan terperinci Mengapa MySQL Melemparkan Ralat 'Jadual Ditentukan Dua Kali' Semasa Mengemas kini Jadual Menggunakan Subquery?. 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