WITH dead AS ( DELETE FROM scrobbles WHERE uri = $1 RETURNING song_id ) DELETE FROM songs WHERE id IN (SELECT song_id FROM dead) AND NOT EXISTS ( SELECT 1 FROM scrobbles WHERE song_id = songs.id )