2014-12-04 64 views
0

我有两个查询。他们是一样的吗?2个查询的比较(MySQL)

DELETE FROM t1 
USING t1 
LEFT JOIN t2 using(key) 
WHERE t2.key is null 

DELETE t1 
FROM t1 
LEFT JOIN t2 using(key) 
WHERE t2.key is null 

如果是,哪一个更有效?

+1

第一个看起来不正确。没有'JOIN'就不能有'USING'。 – Barmar 2014-12-04 10:10:32

回答

0

在我看来都是相同的,因为我从这个语法知道:

DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROM tbl_name 
    [WHERE where_condition] 
    [ORDER BY ...] 
    [LIMIT row_count] 

多表语法:

DELETE [LOW_PRIORITY] [QUICK] [IGNORE] 
    tbl_name[.*] [, tbl_name[.*]] ... 
    FROM table_references 
    [WHERE where_condition] 

或者:

DELETE [LOW_PRIORITY] [QUICK] [IGNORE] 
    FROM tbl_name[.*] [, tbl_name[.*]] ... 
    USING table_references 
    [WHERE where_condition] 

至于大家关心哪些的他们更有效率?这取决于情况意味着何时何地我们正在使用这个。

阅读此更好的体验:http://dev.mysql.com/doc/refman/5.1/en/delete.html