Delete from myTable
where sub_album_id = 'sdf2342'
OR album_id = 'sdf2342'
РЕДАКТИРОВАТЬ 2/2/10:
Я неправильно понял неограниченную иерархию,
Попробуйте это тогда:
MyLoop: LOOP
DELETE FROM MyTable
WHERE album_ID = 'sdf2342';
IF SELECT count(*) where sub_album_id not in (select album_ID from MyTable) = 0 THEN LEAVE MyLoop END IF
DELETE FROM MyTable WHERE sub_album_id not in (select album_ID from MyTable)
END LOOP MyLoop
Мой синтаксис может быть немного неправильным, потому что я пытаюсь адаптировать язык сценариев для отдельного SQL, так что вам, возможно, придется его работать. И это может взорвать ваш процессор на большой таблице, если он не проиндексирован должным образом (как минимум, нужен индекс для sub_album_id и album_id)