удалить с присоединением к той же таблице - PullRequest
1 голос
/ 09 января 2009

возможно ли выполнить оператор запроса на удаление, который присоединяется к той же таблице, Я пробовал различные соединения (внутренний, слева), но не повезло, MySQL возвращает ошибку

пример того, что мне нужно:

DELETE `a` FROM `t1` AS `a`
INNER JOIN `t1` AS `b` USING `some_field_b`
WHERE 
    `a`.`some_field_a` = 'value_x' AND 
    `b`.`some_field_a` = 'value_y'

1 Ответ

3 голосов
/ 09 января 2009

Хотя руководство , похоже, предполагает, что синтаксис INNER JOIN должен работать в DELETE, я знаю, что эта альтернатива с предложением join, перемещенным в условие where, будет работать ...

DELETE  a.* FROM t1 AS a, t1 as b 
WHERE 
    a.some_field_b=b.some_field_b AND
    a.some_field_a = value_x AND 
    b.some_field_a = value_y

Редактировать: я только что попробовал это, который работал для меня:

DELETE a FROM t1 AS a 
INNER JOIN t1 as b USING(some_field_b) 
WHERE 
    a.some_field_a = value_x AND 
    b.some_field_a = value_y
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...