Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 为什么我们在'之后提供别名;删除';多次删除_Mysql_Sql_Join - Fatal编程技术网

Mysql 为什么我们在'之后提供别名;删除';多次删除

Mysql 为什么我们在'之后提供别名;删除';多次删除,mysql,sql,join,Mysql,Sql,Join,这可能是一个非常愚蠢的问题,但我很想知道是否有人有任何建议: 单表删除正确查询:从id=3的车主处删除 单表删除不正确的查询:从车辆所有者v中删除,其中v.id=3 多表删除:从车辆v中删除v,s,s类,其中v.id=3,v.id=s.id Qs 1:我想知道为什么1是正确的,为什么2是错误的。基本上,我在寻找逻辑答案,这解释了为什么在delete查询中提供别名是不正确的 Qs 2:为什么我们在“DELETE”关键字后保留两个别名以进行多次删除。无论如何,我们提供完整的细节在加入条件。那么为什么

这可能是一个非常愚蠢的问题,但我很想知道是否有人有任何建议:

单表删除正确查询:从id=3的车主处删除

单表删除不正确的查询:从车辆所有者v中删除,其中v.id=3

多表删除:从车辆v中删除v,s,s类,其中v.id=3,v.id=s.id

Qs 1:我想知道为什么1是正确的,为什么2是错误的。基本上,我在寻找逻辑答案,这解释了为什么在delete查询中提供别名是不正确的


Qs 2:为什么我们在“DELETE”关键字后保留两个别名以进行多次删除。无论如何,我们提供完整的细节在加入条件。那么为什么它是这样设计的。

第二个示例的完整正确语法是:

将v从车主处删除为v,其中v.id=3

指定别名后,还需要在delete子句中指定它

关于你的第二个问题,我不太清楚你在问什么

  • 第二个是不正确的,因为如果使用别名,SQL语句将被视为多表
    DELETE
    的一个版本,该版本恰好只指定了一个表。因此,它必须遵循multi-table
    DELETE
    的其他规则。语法中没有空间让单个表
    DELETE
    指定别名

  • 您不需要有别名,但需要指定要从中删除的表。因此,您可以直接在
    DELETE
    关键字后面列出这些表或它们的别名。否则,MySQL将不知道是只从第一个表中删除行(其他表也存在以进行筛选),还是从所有表中删除,或者是某种组合

  • 见: