mysql - 如何删除 mysql 表中包含另一个查询结果中的字段的行?

标签 mysql mysql-error-1064 delete-row sql-delete

该声明如下所示:

DELETE FROM videoswatched vw2 
 WHERE vw2.userID IN ( SELECT vw.userID 
                         FROM videoswatched vw
                         JOIN users u ON vw.userID=u.userID
                        WHERE u.companyID = 1000
                     GROUP BY userID )

这对我来说看起来不错,并且 SELECT 语句可以独立工作(生成具有单列“userID”的行。

基本上,我想删除“videoswatched”表中的条目,在加入用户表后,发现videoswatched条目中的userID为companyID=1000。

如何执行此操作而不出现 sql 语法错误?它说错误即将发生:

vw2 WHERE vw2.userID IN (
    SELECT vw.userID FROM videoswatched vw
    JOIN users u

以及第 1 行。

最佳答案

评论中已经回答了:需要删除表别名,MySQL's DELETE statement syntax中不允许这样做(也没有必要)。

编辑:顺便说一句,试试这个(凭内存编码,可能是错误的):

DELETE vw.*
FROM videoswatched vw
INNER JOIN users u ON vw.userID = u.userID
WHERE u.companyID = 1000;

关于mysql - 如何删除 mysql 表中包含另一个查询结果中的字段的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2945457/

相关文章:

mysql - 年份条件工作正常,但我运行年份和日期,它显示为空

Python:MySQLdb:错误:1064 "You have an error in your SQL syntax."

asp.net - GridView 'PendingRecordsGridview' 触发了未处理的事件 RowDeleting

Excel VBA : Delete entire row if cell in column A is blank (Long Dataset)

mysql - 从同一个表中选择相同的数据,只是将条件作为不同的列

java - 如何 "escape"整个字符串 - SQL 查询

mysql - 在 mysql 中用 'N/A' 替换计数 0?

sql-server - 在没有删除的情况下使一个表等于另一个表 *

MYSQL 多组连接

mysql - 我需要有关使用 mysql 作为数据库的 Golang Web 应用程序的帮助