该声明如下所示:
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/