Обычно я бы сказал:
delete anlage_new
where id in (
SELECT a.id
FROM `anlagetobedienung` AS ab
LEFT JOIN anlage_new AS a ON ab.`anlage_id` = a.id
WHERE a.id IS NULL
)
т.е. Вы удаляете строки, в которых первичный ключ находится в результате выбора, который идентифицирует записи для удаления.
Но согласно вашему запросу у них есть id = NULL
, что, кажется, не имеет никакого смысла.
Можете ли вы привести пример данных?
После вашего редактирования я бы сказал, что это должно работать:
delete `anlagetobedienung`
where id in (
SELECT ab.id
FROM `anlagetobedienung` AS ab
LEFT JOIN anlage_new AS a ON ab.`anlage_id` = a.id
WHERE a.id IS NULL
)
Примечание: внутренний выбор имеет «ab.id» вместо «a.id», который представляется единственным столбцом в исходном выборе, который может содержать что-то полезное.