MySQL USING语句与DELETE一起使用了什么?

时间:2010-10-19 16:22:09

标签: mysql

MySQL USING语句做了什么,有没有关于此的文档?

MySQL USING语句示例

DELETE FROM l, s 
USING l
INNER JOIN s ON s.skill_id = l.id
WHERE s.user_id = 3

4 个答案:

答案 0 :(得分:13)

在DELETE中,您可以在USING子句之后列出表,从中不删除行(即,仅作为WHERE子句的一部分)。例如:

DELETE FROM t1, t2 
  USING t1 
    INNER JOIN t2 
    INNER JOIN t3
  WHERE t1.id=t2.id AND 
        t2.id=t3.id;

您可以通过以下方式使用您的特定示例:

DELETE l,s 
FROM l 
  INNER JOIN s 
    ON s.skill_id = l.id 
WHERE s.user_id = 3 

答案 1 :(得分:0)

USING子句用于为JOIN中的两个表设置列存在标准。

所以,如果我有一个声明如:

SELECT * from a
JOIN b
USING (c1,c2)
...

将会发生的事情是MySQL引擎将首先验证两个表中是否存在列c1c2,然后比较这些列的值以在两个表上执行连接。 / p>

请参阅JOIN Syntax的MySQL文档。

答案 2 :(得分:0)

DELETE的MySQL文档中搜索USING。它只是一种替代语法。

答案 3 :(得分:0)

USING语句的语法 -

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

详细信息请访问USING