Rumah >pangkalan data >tutorial mysql >Bagaimana untuk memadam barisan anak yatim di SQL menggunakan gabungan kiri, wujud, atau tidak dalam subqueries?
Apabila memproses pelbagai jadual dalam pangkalan data hubungan, kadang -kadang perlu untuk mengenal pasti dan memadam garis tanpa padanan yang sepadan dalam satu jadual dalam satu jadual. Proses ini biasanya dipanggil "memadam penyertaan terpencil."
Pertimbangkan adegan berikut:
Anda mempunyai dua jadual, "fail" dan "gumpalan", yang mana "files.id" boleh digunakan untuk menyambung ke "blob.fileid".
Gunakan gabungan kiri dan null
<code class="language-sql">DELETE b FROM BLOB b LEFT JOIN FILES f ON f.id = b.fileid WHERE f.id IS NULL</code>
<code class="language-sql">DELETE FROM BLOB WHERE NOT EXISTS(SELECT NULL FROM FILES f WHERE f.id = fileid)</code>
<code class="language-sql">DELETE FROM BLOB WHERE fileid NOT IN (SELECT f.id FROM FILES f)</code>Jika boleh, disarankan untuk melaksanakan operasi memadam dalam urus niaga supaya anda boleh memilih untuk berubah menjadi perubahan apabila sebarang kemalangan berlaku.
Atas ialah kandungan terperinci Bagaimana untuk memadam barisan anak yatim di SQL menggunakan gabungan kiri, wujud, atau tidak dalam subqueries?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!