Не удается подключиться к запросу на удаление MySQL для работы - PullRequest
5 голосов
/ 20 января 2011

Я знаю, что существует более одного вопроса, который соответствует этому, но я относительно новичок в MySQL, и я не могу сделать эту работу, используя подквесты или ключевое слово USING, плюс я нахожу MySQL наline docs полная загадка.

Я начал пытаться построить свой запрос DELETE, используя запрос SELECT в качестве своей базы, и смог получить все строки, которые я хотел удалить:

select *
from writings_tags_link
join writing_tags on writing_tags.id = writings_tags_link.tag_id
where writing_tags.tag = 'tag one'

а затем просто замените select all с помощью DELETE так:

delete
from writings_tags_link
join writing_tags on writing_tags.id = writings_tags_link.tag_id
where writing_tags.tag = 'tag one'

Я получаю как из сообщения об ошибке, так и из других аналогичных постов, что вы не можете использовать «ON» для объединения таблиц в запросе на удаление, у вас естьиспользовать USING или подзапрос.Запрос, который я построил с помощью USING, возвращает действительно странную ошибку, сначала запрос:

DELETE
FROM writings_tags_link
USING writing_tags_link INNER JOIN writing_tags  
WHERE writing_tags.id = writings_tags_link.tag_id 
AND writing_tags.tag ='tag one'

error:

#1109 - Unknown table 'writings_tags_link' in MULTI DELETE

Эта таблица существует, очевидно, мой исходный запрос на выборку вернул искомыйРезультаты.Буду очень признателен за любую помощь / объяснение!

Пожалуйста, имейте в виду, я только пытаюсь удалить данные из таблицы ссылок.

1 Ответ

8 голосов
/ 20 января 2011

Ваша информация неверна о требовании использования ключевого слова USING в синтаксисе DELETE при использовании JOIN - документация содержит примеры в разделе множественного удаления :

DELETE wtl
  FROM WRITINGS_TAGS_LINK wtl
  JOIN WRITING_TAGS wt ON wt.id = wtl.tag_id
 WHERE wt.tag = 'tag one'
...