Удаление строк с MySQL LEFT JOIN

У меня есть две таблицы, один в течение крайних сроков задания, один для описывают задание. Каждое задание может взять состояние, и некоторые состояния означает, что крайние сроки заданий должны быть удалены из другой таблицы.

Я могу легко SELECT задания/крайние сроки, который соответствует моим критериям с a LEFT JOIN:

SELECT * FROM `deadline`
LEFT JOIN `job` ON deadline.job_id = job.job_id
WHERE `status` = 'szamlazva'
OR `status` = 'szamlazhato'
OR `status` = 'fizetve'
OR `status` = 'szallitva'
OR `status` = 'storno'

(status принадлежит job таблица нет deadline)

Но когда я хотел бы удалить эти строки из deadline, MySQL бросает ошибку. Мой запрос:

DELETE FROM `deadline`
LEFT JOIN `job`
ON deadline.job_id = job.job_id
WHERE `status` = 'szamlazva'
OR `status` = 'szamlazhato'
OR `status` = 'fizetve'
OR `status` = 'szallitva'
OR `status` = 'storno'

Ошибка MySQL ничего не говорит:

У Вас есть ошибка в Вашем синтаксисе SQL; проверьте руководство, которое соответствует Вашей серверной версии MySQL для правильного синтаксиса для использования близкого 'ЛЕВОГО СОЕДИНЕНИЯ job НА крайнем сроке job_id = задание job_id, ГДЕ status = 'szaml' в строке 1

Как я могу повернуть мой SELECT в работу DELETE запрос?

173
задан Sam 16 August 2014 в 14:36
поделиться

2 ответа

Нужно просто указать, к каким таблицам применять DELETE.

Удалить только строки deadline:

DELETE `deadline` FROM `deadline` LEFT JOIN `job` ....

Удалить строки deadline и job:

DELETE `deadline`, `job` FROM `deadline` LEFT JOIN `job` ....

Удалить только строки job:

DELETE `job` FROM `deadline` LEFT JOIN `job` ....
315
ответ дан 23 November 2019 в 20:36
поделиться
DELETE FROM deadline where ID IN (
    SELECT d.ID FROM `deadline` d LEFT JOIN `job` ON deadline.job_id = job.job_id WHERE `status` =  'szamlazva' OR `status` = 'szamlazhato' OR `status` = 'fizetve' OR `status` = 'szallitva' OR `status` = 'storno');

Я не уверен, работает ли такой подзапрос в MySQL, но попробуйте. Я предполагаю, что у вас есть столбец идентификаторов в таблице крайних сроков.

2
ответ дан 23 November 2019 в 20:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: