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
Lepaskan: 2025-01-24 22:21:19
asal
400 orang telah melayarinya

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>
Salin selepas log masuk

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>
Salin selepas log masuk

2. Penggunaan TIDAK WUJUD:

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

3. Gunakan NOT IN:

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

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!

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