SQL从另一个表检查数据时删除

时间:2010-11-20 15:10:53

标签: sql mysql

我有2个表,wordslists

words属于列表,是listId字段的引用。

lists包含username字段。

我需要通过它id删除一个单词,但首先需要检查用户名是否正确,因此我需要引用列表。

这是我到目前为止所做的,但它不起作用。

DELETE FROM w
USING lists AS l INNER JOIN words AS w
WHERE 
l.username = 'admin'
AND w.listId = 31
AND l.id = w.listId

2 个答案:

答案 0 :(得分:2)

DELETE w FROM words w
INNER JOIN lists l on l.id = w.listid
WHERE 
l.username = 'admin'
AND w.listId = 31

答案 1 :(得分:0)

我不是100%肯定my-sql语法(我使用的是Oracle),但这应该可行:

DELETE FROM words
WHERE listid in (
  SELECT 31 from lists where username = 'admin'
)

...如果您真的喜欢,可以将内部选择更改为:

SELECT listId from lists where username = 'admin' and listId = 31

(但没必要)