2011-04-21 92 views
1

我有表视频与cols(url,title,desc,...)和表收藏夹cols(fav_url,拇指)。删除连接嵌套查询

当我尝试使用删除两个表中的行:

delete from video join favorite on video.url=favorite.fav_url 
    where url in (select url from video where title like '%thumb%') 

我得到的错误。

有没有办法做到这个工作执行一个查询?

回答

1

EDIT尝试这个吧

你不能真正做到删除查询此类型当你有一个SUB QUERY像你一样。 阅读这篇文章,详细解释。

MySQL Error 1093 - Can't specify target table for update in FROM clause

DELETE video, favorite 
    FROM video 
    JOIN favorite 
     ON video.url = favorite.fav_url 
    JOIN (SELECT DISTINCT url 
        FROM video 
        WHERE title like '%thumb%') tt ON video.url = tt.url 
+0

#1093 - 您无法在FROM子句中指定目标表'V'进行更新 – 2011-04-21 22:07:03

+0

什么是?你使用了上面的确切代码吗?查询窗口中是否有任何内容?我只是写了一个几乎认同的查询,根本没有任何错误。 – 2011-04-21 22:12:47

+0

完全一样.. – 2011-04-21 22:25:02

2

尝试:

DELETE t1, t2 FROM video t1 JOIN favorite t2 ON t1.url=t2.fav_url 
WHERE url IN 
    (SELECT url FROM (SELECT * FROM video) t3 WHERE title LIKE '%thumb%') 
+0

#1093 - 你不能指定FROM子句 – 2011-04-21 22:07:33

+0

@ daniel.tosaba用于更新目标表 'T1':谢谢,固定。 – 2011-04-22 07:55:23