使用内连接 SQLITE 从两个表中删除行
Posted
技术标签:
【中文标题】使用内连接 SQLITE 从两个表中删除行【英文标题】:Deleting rows from two tables using inner join SQLITE 【发布时间】:2013-01-25 23:22:23 【问题描述】:如何从两个单独的表中删除一行?我认为可以使用内部连接来做到这一点
DELETE a.*, b.* FROM Holiday INNER JOIN Accommodation b on a.LocationID = b.LocationID
在这里,我尝试通过将第一个表中的主键位置与第二个表中的位置 id 匹配来删除。我得到一个 SQL 异常“sqlException near a”
我在 SQLITE、java 中这样做
【问题讨论】:
不确定多表删除的确切语法,但不管您是否忘记了假日表的相关名称。FROM Holiday INNER JOIN
应该是 FROM Holiday a INNER JOIN
sqlite中没有多表删除。
哦,我该如何克服这个问题
【参考方案1】:
在 SQLite 中,一个DELETE
命令只从一个表中删除。
您的查询,如所写,实际上并没有限制要删除的记录,所以如果您真的想删除所有记录,您可以使用:
DELETE FROM Holiday;
DELETE FROM Accommodation;
如果要删除主表中的一条记录和子表中的所有对应记录,只需按该键值过滤即可:
DELETE FROM Holiday WHERE LocationID = 1;
DELETE FROM Accommodation WHERE LocationID = 1;
【讨论】:
如果您希望程序中的用户在不指定的情况下选择该键值怎么办 然后让用户选择值,然后将该值放入查询中。以上是关于使用内连接 SQLITE 从两个表中删除行的主要内容,如果未能解决你的问题,请参考以下文章