Rumah >pangkalan data >tutorial mysql >Bagaimana cara memadam baris anak yatim dalam jadual pangkalan data berdasarkan ID yang tidak dapat ditandingi?

Bagaimana cara memadam baris anak yatim dalam jadual pangkalan data berdasarkan ID yang tidak dapat ditandingi?

Linda Hamilton
Linda Hamiltonasal
2025-01-24 22:21:19403semak imbas

How to Delete Orphan Rows in a Database Table Based on Unmatched IDs?

Padamkan baris anak yatim berdasarkan ID yang tidak sepadan

Soalan:

Padam blob daripada fileid jadual Tiada baris yang sepadan files ditemui dalam id jadual.

Struktur jadual:

<code>files表:
| id | .... |
|---|---|
| 1  | .... |
| 2  | .... |
| 7  | .... |
| 9  | .... |

blob表:
| fileid | .... |
|---|---|
| 1  | .... |
| 2  | .... |
| 3  | .... |
| 4  | .... |
| 4  | .... |
| 4  | .... |
| 9  | .... |</code>

Hasil yang dijangkakan:

Padamkan baris dengan blobs 3 dan 4 dalam jadual fileid kerana tiada padanan files dalam jadual fileid.

Penyelesaian:

1. Gunakan LEFT JOIN/IS 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>

2. Penggunaan TIDAK WUJUD:

<code class="language-sql">DELETE FROM BLOB 
 WHERE NOT EXISTS(SELECT NULL
                    FROM FILES f
                   WHERE f.id = fileid)</code>

3. Gunakan NOT IN:

<code class="language-sql">DELETE FROM BLOB
 WHERE fileid NOT IN (SELECT f.id 
                        FROM FILES f)</code>

Amaran:

Untuk memastikan pemulangan semula sekiranya berlaku ralat, lakukan operasi PADAM dalam transaksi.

Atas ialah kandungan terperinci Bagaimana cara memadam baris anak yatim dalam jadual pangkalan data berdasarkan ID yang tidak dapat ditandingi?. 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