Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.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
使用表别名删除SQLite_Sql_Sqlite_Relational Database - Fatal编程技术网

使用表别名删除SQLite

使用表别名删除SQLite,sql,sqlite,relational-database,Sql,Sqlite,Relational Database,我试图在SQLite中为一个表添加别名,例如通过以下命令:它来自于我正在阅读的Ramakrishnan的《数据库管理系统》一书 DELETE FROM Students S WHERE S.sid=12546 这段代码给出了一个语法错误。如果没有别名,以下代码可以正常工作: DELETE FROM Students WHERE sid=12546 但是,如果我想给表添加别名,我应该怎么做?有人能帮忙吗 谢谢DELETE语句在单个表上运行,并且不使用表别名。因此,您必须将查询用作: DELET

我试图在SQLite中为一个表添加别名,例如通过以下命令:它来自于我正在阅读的Ramakrishnan的《数据库管理系统》一书

DELETE FROM Students S WHERE S.sid=12546
这段代码给出了一个语法错误。如果没有别名,以下代码可以正常工作:

DELETE FROM Students WHERE sid=12546
但是,如果我想给表添加别名,我应该怎么做?有人能帮忙吗

谢谢

DELETE语句在单个表上运行,并且不使用表别名。因此,您必须将查询用作:

DELETE FROM Students WHERE sid=12546
更新:
SQLite显然不支持delete语句的连接,正如您在。简而言之,在SQLite中,一个DELETE命令只从一个表中删除。所以别名是没有用的

谢谢,但在我读的罗摩克里希南的《数据库管理系统》一书中,它是这样写的。您认为这是错误的吗?正如您在上所看到的,SQLite显然不支持delete语句的连接。因此,在delete中似乎禁用了别名statement@bigO是的,这本书对于标准SQL或SQLite是错误的。它是为另一个数据库(如MySQL)编写的吗?可能是,我不确定,但它不适合SQLITE。实际上,语法图表明它应该接受别名,因为它使用别名,并且别名会很有用,因为expr可以包含子查询,例如:从foo中删除AS f WHERE EXISTS从bar中选择b.id AS b WHERE b.key=f.id。这似乎是实现或语法文档中的一个错误。@BlueFoots我在那里解决了删除错误,但没有得到关于别名的答案