在连接多个表的SQL Delete上,是否会影响所有表?

时间:2011-08-28 19:07:55

标签: mysql sql-delete

我想加入几个表,但我只想从中删除行 threadread表。我得到了以下SQL,显示了我要删除的行。

SELECT * FROM threadsread tr, threads t WHERE 
tr.tid=t.tid and tr.uid=2111 and t.fid=30

Mysql docs上说明: “*对于多表语法,DELETE从每个tbl_name中删除满足条件的行。*”

获取上述选择删除,线程表是否也会受到影响?

DELETE FROM threadsread tr, threads t 
WHERE tr.tid=t.tid and tr.uid=2111 and t.fid=30

如果可以的话,我怎样才能只获得受影响的threadread表?

1 个答案:

答案 0 :(得分:2)

在许多(可能是大多数或所有)SQL风格中,您提供的delete语句实际上是无效的。而是使用:

DELETE FROM threadsread tr
USING threads t
WHERE tr.tid=t.tid AND tr.uid=2111 AND t.fid=30;

这显然只会删除' FROM'中指定的一个表格。子句。