mysql语法USING和ON对同一个查询

时间:2017-01-19 06:51:34

标签: mysql

SELECT * 
FROM p USING profile p 
LEFT OUTER JOIN inter i ON p.inter_id = i.inter_id 
WHERE i.inter_id = 0;

显示错误

  

您的SQL语法有错误;检查手册   对应于您的MySQL服务器版本,以便使用正确的语法   靠近'USING profile p LEFT OUTER JOIN inter i ON p.inter_id = i.inter'   在第1行

但是

DELETE FROM p USING profile p 
LEFT OUTER JOIN inter i ON p.inter_id = i.inter_id 
WHERE i.inter_id = 0; 

工作正常。

1 个答案:

答案 0 :(得分:1)

JOIN操作USING关键字的上下文中使用时,替换ON

SELECT * 
FROM profile p  
LEFT OUTER JOIN inter i USING(inter_id)
WHERE i.inter_id = 0;

这只是经典'的语法糖。 ON条款:

ON p.inter_id = i.inter_id

但是,在USING操作的上下文中使用DELETE关键字时,使用如下:

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

上述查询表示多表 DELETE操作:仅匹配FROM子句中列出的行(USING子句之前的)被删除。

参考: DELETE Syntax